diff options
Diffstat (limited to 'support/build/compile-module.js')
-rw-r--r-- | support/build/compile-module.js | 36 |
1 files changed, 36 insertions, 0 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) + }) +} |