useless
Version:
Use Less. Do More. JavaScript on steroids.
31 lines (23 loc) • 1.23 kB
JavaScript
;
const _ = require ('underscore')
const util = require ('./base/util')
/* ------------------------------------------------------------------------ */
module.exports = $trait ({
$defaults: {
argKeys: { /* 'example-option': 1 */ },
args: { values: [],
all: [] } },
argsReady: $barrier (),
beforeInit () {
this.argsReady (this.args = this.parseProcessArgs (_.keys (this.argKeys))) },
$private: {
parseProcessArgs (proposedKeys) {
var args = process.argv.slice (2)
var incomingKeys = _.intersection (args, _.map (proposedKeys, _.camelCaseToDashes))
var keysCamelCase = _.map (incomingKeys, _.dashesToCamelCase)
return _.extend (
_.index (keysCamelCase), { keys: keysCamelCase,
keysDashed: incomingKeys,
all: args,
values: _.without.apply (null, [args].concat (incomingKeys)) }) } } })
/* ------------------------------------------------------------------------ */