summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Early <alexander.early@gmail.com>2017-04-16 20:19:50 -0700
committerAlexander Early <alexander.early@gmail.com>2017-04-16 20:19:50 -0700
commit1a2b5c31ddda488a03619675c6ace7859b2c3c5c (patch)
treed710982050d62132a12346ca41024e4730569a55
parent70aa51c12b8009b5c899d855aa6185fc7303a4ef (diff)
downloadasync-1a2b5c31ddda488a03619675c6ace7859b2c3c5c.tar.gz
factor compiling a module into a separate function
-rw-r--r--support/build/compile-module.js36
-rw-r--r--support/build/compile-modules.js36
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);
});
}