var _ = require('lodash').runInContext();
|
|
module.exports = function(options, singleDash) {
|
return _.reduce(options, function(memo, val, key) {
|
val = _.isArray(val) ? val : [val];
|
|
// Loop over each value for this key so that multiple values
|
// can be assigned to an option
|
_.each(val, function(v) {
|
// Build the flag as --key
|
var flag = key.length === 1 ? key : _.kebabCase(key);
|
|
// Set = style options, e.g. --fruit=banana
|
if (key.slice(-1) === '=') {
|
flag = `${flag}=${v}`;
|
}
|
|
var prefix = (key.length === 1 || singleDash) ? '-' : '--';
|
|
if (v === false) {
|
prefix += 'no-';
|
}
|
|
flag = prefix + flag;
|
|
// Add the option to the list
|
memo.push(flag);
|
|
// Specifically allow "true" to mean "this flag has no arg with it"
|
if (typeof v !== 'boolean' && flag.indexOf('=') === -1) {
|
// Add the value to the list as well
|
memo.push(v);
|
}
|
});
|
|
return memo;
|
}, []);
|
};
|