steal-tools
Version:
Futuristic build tools for ES6 Module applications.
51 lines (41 loc) • 1.08 kB
JavaScript
var _keys = require("lodash/keys");
var _some = require("lodash/some");
var _merge = require("lodash/merge");
module.exports = function(options) {
var result = {};
var outputs = {
cjs: { "+cjs": {} },
amd: { "+amd": {} },
global: {
"+global-css": {},
"+global-js": {
exports: { "jquery": "jQuery" }
}
},
standalone: { "+standalone": {} }
};
var outputOptions = [ "dest" ];
var hasSetOptions = _some(_keys(outputs), function(out) {
return options[out];
});
// determines if the output is included in "all"
var outputAll = function(hasSetOptions, options, out){
return (!hasSetOptions || options.all) && out !== "standalone";
};
_keys(outputs).forEach(function(out) {
if (outputAll(hasSetOptions, options, out) || options[out]) {
_merge(result, outputs[out]);
}
});
// Set the options on the outputs, like `dest`
outputOptions.forEach(function(opt){
if(options[opt]) {
_keys(result).forEach(function(key){
var out = result[key];
// Set the value
out[opt] = options[opt];
});
}
});
return result;
};