radish
Version:
Radish is a React-based static site generator that outputs plain HTML and CSS.
50 lines (49 loc) • 1.28 kB
JavaScript
export default function argv(argv) {
const result = { _: [] };
let positional = false;
let currentKey = "";
for (const arg of argv) {
if (positional) {
result._.push(parse(arg));
continue;
}
if (arg.startsWith("-")) {
if (currentKey)
result[currentKey] = true;
const [key, value] = arg.replace(/^-+/, "").split(/=(.*)/);
if (!key) {
if (currentKey)
result[currentKey] = true;
positional = true;
currentKey = "";
continue;
}
if (!value) {
currentKey = key;
continue;
}
result[key] = value;
currentKey = "";
continue;
}
if (currentKey) {
result[currentKey] = parse(arg);
currentKey = "";
continue;
}
result._.push(parse(arg));
}
if (currentKey)
result[currentKey] = true;
return result;
}
function parse(arg) {
const num = Number(arg);
if (!isNaN(num))
return num;
if (arg === "true")
return true;
if (arg === "false")
return false;
return arg;
}