@v4fire/config
Version:
Простой [config](https://www.npmjs.com/package/config)-like конфигуратор с поддержкой параметров командной строки, переменных среды и вычисляемых опций, преобразования значений и их валидации.
35 lines (25 loc) • 593 B
JavaScript
;
function isFlag(str) {
return /^--?[\S]+$/.test(str);
}
function parseArgs(argv) {
return argv.reduce((parsed, arg, i, argv) => {
if (isFlag(arg)) {
const next = argv[i + 1];
let value;
if (next && !isFlag(next)) {
value = next;
} else {
value = !/^--no-/.test(arg);
}
if (arg === '--env') {
const [envArg, envVal] = value.split('=');
parsed[envArg] = envVal || true;
} else {
parsed[arg.replace(/^--?(?:no-)?/, '')] = value;
}
}
return parsed;
}, {});
}
module.exports = parseArgs;