@jil/args
Version:
A convention based argument parsing and formatting library, with strict validation checks
40 lines • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.format = void 0;
function mapToStringList(value) {
if (!Array.isArray(value)) {
return [String(value)];
}
return value.map(String);
}
/**
* Format a parsed arguments object back into a command line list of arguments.
*/
function format(argument) {
const { command = [], options = {}, params = [], rest = [] } = argument;
const args = [];
// Commands
if (command.length > 0) {
args.push(command.join(':'));
}
// Options
Object.entries(options).forEach(([name, value]) => {
if (typeof value === 'boolean') {
args.push(`--${!value ? 'no-' : ''}${name}`);
}
else {
args.push(`--${name}`, ...mapToStringList(value));
}
});
// Params
if (params.length > 0) {
args.push(...mapToStringList(params));
}
// Rest
if (rest.length > 0) {
args.push('--', ...mapToStringList(rest));
}
return args;
}
exports.format = format;
//# sourceMappingURL=format.js.map