diff options
Diffstat (limited to 'support/build')
-rw-r--r-- | support/build/compile-module.js | 36 | ||||
-rw-r--r-- | support/build/compile-modules.js | 36 |
2 files changed, 48 insertions, 24 deletions
diff --git a/support/build/compile-module.js b/support/build/compile-module.js new file mode 100644 index 0000000..9b9acbf --- /dev/null +++ b/support/build/compile-module.js @@ -0,0 +1,36 @@ +const fs = require('fs'); +const {transformFile} = require('babel-core'); +const _ = require('lodash'); +const pluginCJS = require('babel-plugin-transform-es2015-modules-commonjs'); +const pluginModuleExports = require('babel-plugin-add-module-exports'); +const pluginLodashImportRename = require('./plugin-lodash-import-rename'); + +module.exports = function compileModule(opts, callback) { + const options = _.defaults({}, opts, { + es6: false, + lodashRename: false + }); + const plugins = []; + + if (options.lodashRename) { + plugins.push(pluginLodashImportRename); + } + if (!options.es6) { + plugins.push(pluginModuleExports); + plugins.push(pluginCJS); + } + + const {file, output} = options; + + transformFile(file, { + babelrc: false, + plugins + }, (err, content) => { + if (err) return callback(err); + if (!output) { + process.stdout.write(content.code); + return callback(); + } + fs.writeFile(output, content.code, callback) + }) +} diff --git a/support/build/compile-modules.js b/support/build/compile-modules.js index 583f83d..7333518 100644 --- a/support/build/compile-modules.js +++ b/support/build/compile-modules.js @@ -1,12 +1,9 @@ const async = require('async'); -const {transformFile} = require('babel-core'); const _ = require('lodash'); const readdirR = require('recursive-readdir'); -const pluginCJS = require('babel-plugin-transform-es2015-modules-commonjs'); -const pluginModuleExports = require('babel-plugin-add-module-exports'); -const pluginLodashImportRename = require('./plugin-lodash-import-rename'); const joinPath = require('path').join; const fs = require('fs-extra'); +const compileModule = require('./compile-module'); module.exports = function(options, cb) { options = _.defaults({}, options, { @@ -15,33 +12,24 @@ module.exports = function(options, cb) { es6: false, lodashRename: false }); - const plugins = []; const { path, outpath } = options; - if (options.lodashRename) { - plugins.push(pluginLodashImportRename); - } - if (!options.es6) { - plugins.push(pluginModuleExports); - plugins.push(pluginCJS); - } - readdirR(path, [], (err, files) => { fs.emptyDirSync(outpath); fs.emptyDirSync(joinPath(outpath, 'internal')); async.each(files, (file, callback) => { + const outfile = file.startsWith(path) ? + file.slice(path.length) : + file; + const finalPath = joinPath(outpath, outfile); + + compileModule({ + file, + output: finalPath, + lodashRename: options.lodashRename, + es6: options.es6 + }, callback) - transformFile(file, { - babelrc: false, - plugins: plugins - }, (err, content) => { - if (err) { return callback(err); } - const outfile = file.startsWith(path) ? - file.slice(path.length) : - file; - const finalPath = joinPath(outpath, outfile); - fs.writeFile(finalPath, content.code, callback); - }); }, cb); }); } |