1- var fs = require ( 'fs' ) ;
2- var rollup = require ( 'rollup' ) ;
3- var uglify = require ( 'uglify-js' ) ;
4- var babel = require ( 'rollup-plugin-babel' ) ;
5- var execSync = require ( 'child_process' ) . execSync ;
1+ 'use strict'
2+
3+ var fs = require ( 'fs' )
4+ var rollup = require ( 'rollup' )
5+ var uglify = require ( 'uglify-js' )
6+ var babel = require ( 'rollup-plugin-babel' )
7+ var execSync = require ( 'child_process' ) . execSync
68
79bundle ( {
8- minified : 'dist/jspdf.min.js' ,
9- debug : 'dist/jspdf.debug.js'
10- } ) ;
10+ minified : 'dist/jspdf.min.js' ,
11+ debug : 'dist/jspdf.debug.js'
12+ } )
1113
1214// Monkey patching adler32 and filesaver
1315function monkeyPatch ( ) {
14- return {
15- transform : function ( code , id ) {
16- var file = id . split ( '/' ) . pop ( ) ;
17- if ( file === 'adler32cs.js' ) {
18- code = code . replace ( / t h i s , f u n c t i o n / g, 'jsPDF, function' ) ;
19- code = code . replace ( / r e q u i r e \( ' b u f f e r ' \) / g, '{}' ) ;
20- }
21- return code ;
22- }
16+ return {
17+ transform : ( code , id ) => {
18+ var file = id . split ( '/' ) . pop ( )
19+ if ( file === 'adler32cs.js' ) {
20+ code = code . replace ( / t h i s , f u n c t i o n / g, 'jsPDF, function' )
21+ code = code . replace ( / r e q u i r e \( ' b u f f e r ' \) / g, '{}' )
22+ }
23+ return code
2324 }
25+ }
2426}
2527
2628// Rollup removes local variables unless used within a module.
27- // This plugin makes sure specified local variables are preserved
29+ // This plugin makes sure specified local variables are preserved
2830// and kept local. This plugin wouldn't be necessary if es2015
2931// modules would be used.
3032function rawjs ( opts ) {
31- opts = opts || { } ;
32- return {
33- transform : function ( code , id ) {
34- var variable = opts [ id . split ( '/' ) . pop ( ) ] ;
35- if ( ! variable ) return code ;
33+ opts = opts || { }
34+ return {
35+ transform : ( code , id ) => {
36+ var variable = opts [ id . split ( '/' ) . pop ( ) ]
37+ if ( ! variable ) return code
3638
37- var keepStr = '/*rollup-keeper-start*/window.tmp=' + variable + ';/*rollup-keeper-end*/' ;
38- return code + keepStr ;
39- } ,
40- transformBundle : function ( code ) {
41- for ( var file in opts ) {
42- var r = new RegExp ( opts [ file ] + '\\$\\d+' , 'g' ) ;
43- code = code . replace ( r , opts [ file ] ) ;
44- }
45- var re = / \/ \* r o l l u p - k e e p e r - s t a r t \* \/ . * \/ \* r o l l u p - k e e p e r - e n d \* \/ / g ;
46- return code . replace ( re , '' ) ;
47- }
39+ var keepStr = '/*rollup-keeper-start*/window.tmp=' + variable +
40+ ';/*rollup-keeper-end*/'
41+ return code + keepStr
42+ } ,
43+ transformBundle : ( code ) => {
44+ for ( var file in opts ) {
45+ var r = new RegExp ( opts [ file ] + '\\$\\d+' , 'g' )
46+ code = code . replace ( r , opts [ file ] )
47+ }
48+ var re = / \/ \* r o l l u p - k e e p e r - s t a r t \* \/ . * \/ \* r o l l u p - k e e p e r - e n d \* \/ / g
49+ return code . replace ( re , '' )
4850 }
51+ }
4952}
5053
5154function bundle ( paths ) {
52- rollup . rollup ( {
53- entry : './main.js' ,
54- plugins : [
55- monkeyPatch ( ) ,
56- rawjs ( {
57- 'jspdf.js' : 'jsPDF' ,
58- 'filesaver.tmp.js' : 'saveAs' ,
59- 'deflate.js' : 'Deflater' ,
60- 'zlib.js' : 'FlateStream' ,
61- 'css_colors.js' : 'CssColors' ,
62- 'html2pdf.js' : 'html2pdf'
63- } ) ,
64- babel ( {
65- presets : [ 'es2015-rollup' ] ,
66- exclude : [ 'node_modules/**' , 'libs/**' ]
67- } )
68- ]
69- } ) . then ( function ( bundle ) {
70- var code = bundle . generate ( { format : 'umd' , moduleName : 'jspdf' } ) . code ;
71- code = code . replace ( / P e r m i s s i o n \s + i s \s + h e r e b y \s + g r a n t e d [ \S \s ] + ?I N \s + T H E \s + S O F T W A R E \. / , 'Licensed under the MIT License' ) ;
72- code = code . replace ( / P e r m i s s i o n \s + i s \s + h e r e b y \s + g r a n t e d [ \S \s ] + ?I N \s + T H E \s + S O F T W A R E \. / g, '' ) ;
73- fs . writeFileSync ( paths . debug , renew ( code ) ) ;
55+ rollup . rollup ( {
56+ entry : './main.js' ,
57+ plugins : [
58+ monkeyPatch ( ) ,
59+ rawjs ( {
60+ 'jspdf.js' : 'jsPDF' ,
61+ 'filesaver.tmp.js' : 'saveAs' ,
62+ 'deflate.js' : 'Deflater' ,
63+ 'zlib.js' : 'FlateStream' ,
64+ 'css_colors.js' : 'CssColors' ,
65+ 'html2pdf.js' : 'html2pdf'
66+ } ) ,
67+ babel ( {
68+ presets : [ 'es2015-rollup' ] ,
69+ exclude : [ 'node_modules/**' , 'libs/**' ]
70+ } )
71+ ]
72+ } ) . then ( ( bundle ) => {
73+ var code = bundle . generate ( {
74+ format : 'umd' ,
75+ moduleName : 'jspdf'
76+ } ) . code
77+ code = code . replace (
78+ / P e r m i s s i o n \s + i s \s + h e r e b y \s + g r a n t e d [ \S \s ] + ?I N \s + T H E \s + S O F T W A R E \. / ,
79+ 'Licensed under the MIT License' )
80+ code = code . replace (
81+ / P e r m i s s i o n \s + i s \s + h e r e b y \s + g r a n t e d [ \S \s ] + ?I N \s + T H E \s + S O F T W A R E \. / g,
82+ '' )
83+ fs . writeFileSync ( paths . debug , renew ( code ) )
7484
75- var minified = uglify . minify ( code , { fromString : true , output : { comments : / @ p r e s e r v e | @ l i c e n s e | c o p y r i g h t / i} } ) ;
76- fs . writeFileSync ( paths . minified , renew ( minified . code ) ) ;
77- } ) . catch ( function ( err ) {
78- console . error ( err ) ;
79- } ) ;
85+ var minified = uglify . minify ( code , {
86+ fromString : true ,
87+ output : {
88+ comments : / @ p r e s e r v e | @ l i c e n s e | c o p y r i g h t / i
89+ }
90+ } )
91+ fs . writeFileSync ( paths . minified , renew ( minified . code ) )
92+ } ) . catch ( ( err ) => {
93+ console . error ( err )
94+ } )
8095}
8196
8297function renew ( code ) {
83- var date = new Date ( ) . toISOString ( ) ;
84- var version = require ( './package.json' ) . version ;
85- var whoami = execSync ( 'whoami' ) . toString ( ) . trim ( ) ;
86- var commit = execSync ( 'git rev-parse --short=10 HEAD' ) . toString ( ) . trim ( ) ;
98+ var date = new Date ( ) . toISOString ( )
99+ var version = require ( './package.json' ) . version
100+ var whoami = execSync ( 'whoami' ) . toString ( ) . trim ( )
101+ var commit = execSync ( 'git rev-parse --short=10 HEAD' ) . toString ( ) . trim ( )
87102
88- code = code . replace ( '${versionID}' , version + ' Built on ' + date ) ;
89- code = code . replace ( '${commitID}' , commit ) ;
90- code = code . replace ( / 1 \. 0 \. 0 - t r u n k / , version + ' ' + date + ':' + whoami ) ;
103+ code = code . replace ( '${versionID}' , version + ' Built on ' + date )
104+ code = code . replace ( '${commitID}' , commit )
105+ code = code . replace ( / 1 \. 0 \. 0 - t r u n k / , version + ' ' + date + ':' + whoami )
91106
92- return code ;
93- }
107+ return code
108+ }
0 commit comments