steal-tools
Version:
Futuristic build tools for ES6 Module applications.
37 lines (30 loc) • 908 B
JavaScript
var clone = require("lodash/clone");
var omitBy = require("lodash/omitBy");
var compact = require("lodash/compact");
var includes = require("lodash/includes");
var defaults = require("lodash/defaults");
var commandOptions = require("./options");
/**
* Convert the arv into a BuildOptions object
* @param {Object} argv Command arguments provided by yargs
* @return {BuildOptions} The build options object
*/
module.exports = function(argv) {
var options = clone(argv);
if (options.noMinify) {
options.minify = false;
}
if (options.verbose) {
options.quiet = false;
}
defaults(options, {
minify: options.watch ? false : true,
quiet: options.watch ? true : false
});
var aliases = compact(Object.keys(commandOptions).map(function(o) {
return commandOptions[o].alias;
}));
return omitBy(options, function(value, key) {
return includes(aliases, key) || includes(key, "-");
});
};