diff --git a/src/packagers/JSConcatPackager.js b/src/packagers/JSConcatPackager.js index 89fe42d0889..52f69393947 100644 --- a/src/packagers/JSConcatPackager.js +++ b/src/packagers/JSConcatPackager.js @@ -1,27 +1,22 @@ const Packager = require('./Packager'); const path = require('path'); -const fs = require('fs'); const concat = require('../scope-hoisting/concat'); const urlJoin = require('../utils/urlJoin'); +const getExisting = require('../utils/getExisting'); const walk = require('babylon-walk'); const babylon = require('babylon'); const t = require('babel-types'); const {getName, getIdentifier} = require('../scope-hoisting/utils'); -const prelude = { - source: fs - .readFileSync(path.join(__dirname, '../builtins/prelude2.js'), 'utf8') - .trim(), - minified: fs - .readFileSync(path.join(__dirname, '../builtins/prelude2.min.js'), 'utf8') - .trim() - .replace(/;$/, '') -}; - -const helpers = - fs - .readFileSync(path.join(__dirname, '../builtins/helpers.js'), 'utf8') - .trim() + '\n'; +const prelude = getExisting( + path.join(__dirname, '../builtins/prelude2.min.js'), + path.join(__dirname, '../builtins/prelude2.js') +); + +const helpers = getExisting( + path.join(__dirname, '../builtins/helpers.min.js'), + path.join(__dirname, '../builtins/helpers.js') +); class JSConcatPackager extends Packager { async start() { diff --git a/src/packagers/JSPackager.js b/src/packagers/JSPackager.js index ed72b808f8a..ed2f8c17a74 100644 --- a/src/packagers/JSPackager.js +++ b/src/packagers/JSPackager.js @@ -1,19 +1,14 @@ -const fs = require('fs'); const path = require('path'); const Packager = require('./Packager'); +const getExisting = require('../utils/getExisting'); const urlJoin = require('../utils/urlJoin'); const lineCounter = require('../utils/lineCounter'); const objectHash = require('../utils/objectHash'); -const prelude = { - source: fs - .readFileSync(path.join(__dirname, '../builtins/prelude.js'), 'utf8') - .trim(), - minified: fs - .readFileSync(path.join(__dirname, '../builtins/prelude.min.js'), 'utf8') - .trim() - .replace(/;$/, '') -}; +const prelude = getExisting( + path.join(__dirname, '../builtins/prelude.min.js'), + path.join(__dirname, '../builtins/prelude.js') +); class JSPackager extends Packager { async start() { diff --git a/src/utils/getExisting.js b/src/utils/getExisting.js new file mode 100644 index 00000000000..6d6dcfc8e32 --- /dev/null +++ b/src/utils/getExisting.js @@ -0,0 +1,16 @@ +const fs = require('fs'); +/** + * Creates an object that contains both source and minified + * source (using the source as a fallback). + * e.g. builtins.min.js and builtins.js. + */ +module.exports = function(minified, source) { + var sourceFile = fs.readFileSync(source, 'utf8').trim(); + return { + source: sourceFile, + minified: fs.existsSync(minified) ? fs + .readFileSync(minified, 'utf8') + .trim() + .replace(/;$/, '') : sourceFile + } +};