Skip to content

Commit 3a7d4c1

Browse files
committed
Tidy up build script, add test for adding text
1 parent 6fa7d4e commit 3a7d4c1

4 files changed

Lines changed: 94 additions & 74 deletions

File tree

build.js

Lines changed: 85 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,108 @@
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

79
bundle({
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
1315
function monkeyPatch() {
14-
return {
15-
transform: function (code, id) {
16-
var file = id.split('/').pop();
17-
if (file === 'adler32cs.js') {
18-
code = code.replace(/this, function/g, 'jsPDF, function');
19-
code = code.replace(/require\('buffer'\)/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(/this, function/g, 'jsPDF, function')
21+
code = code.replace(/require\('buffer'\)/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.
3032
function 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 = /\/\*rollup-keeper-start\*\/.*\/\*rollup-keeper-end\*\//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 = /\/\*rollup-keeper-start\*\/.*\/\*rollup-keeper-end\*\//g
49+
return code.replace(re, '')
4850
}
51+
}
4952
}
5053

5154
function 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(/Permission\s+is\s+hereby\s+granted[\S\s]+?IN\s+THE\s+SOFTWARE\./, 'Licensed under the MIT License');
72-
code = code.replace(/Permission\s+is\s+hereby\s+granted[\S\s]+?IN\s+THE\s+SOFTWARE\./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+
/Permission\s+is\s+hereby\s+granted[\S\s]+?IN\s+THE\s+SOFTWARE\./,
79+
'Licensed under the MIT License')
80+
code = code.replace(
81+
/Permission\s+is\s+hereby\s+granted[\S\s]+?IN\s+THE\s+SOFTWARE\./g,
82+
'')
83+
fs.writeFileSync(paths.debug, renew(code))
7484

75-
var minified = uglify.minify(code, {fromString: true, output: {comments: /@preserve|@license|copyright/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: /@preserve|@license|copyright/i
89+
}
90+
})
91+
fs.writeFileSync(paths.minified, renew(minified.code))
92+
}).catch((err) => {
93+
console.error(err)
94+
})
8095
}
8196

8297
function 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-trunk/, 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-trunk/, version + ' ' + date + ':' + whoami)
91106

92-
return code;
93-
}
107+
return code
108+
}

dist/jspdf.debug.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
/** @preserve
1414
* jsPDF - PDF Document creation from JavaScript
15-
* Version 1.3.2 Built on 2016-10-04T11:31:37.379Z
16-
* CommitID 503b20e4d2
15+
* Version 1.3.2 Built on 2016-10-04T11:40:16.462Z
16+
* CommitID 6fa7d4ecc0
1717
*
1818
* Copyright (c) 2010-2016 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF
1919
* 2010 Aaron Spike, https://github.com/acspike
@@ -2065,7 +2065,7 @@
20652065
jsPDF.API = {
20662066
events: []
20672067
};
2068-
jsPDF.version = "1.3.2 2016-10-04T11:31:37.379Z:jameshall";
2068+
jsPDF.version = "1.3.2 2016-10-04T11:40:16.462Z:jameshall";
20692069

20702070
if (typeof define === 'function' && define.amd) {
20712071
define('jsPDF', function () {

0 commit comments

Comments
 (0)