Files
OmniRoute/bin/cli/args.mjs
Diego Rodrigues de Sa e Souza 3d75fb3fae Release v3.8.0 (#2073)
Integrated into release/v3.8.0
2026-05-10 00:55:06 -03:00

48 lines
1.0 KiB
JavaScript

export function parseArgs(argv = []) {
const flags = {};
const positionals = [];
for (let i = 0; i < argv.length; i += 1) {
const arg = argv[i];
if (arg.startsWith("-") && !arg.startsWith("--") && arg.length > 1) {
for (const key of arg.slice(1)) {
flags[key] = true;
}
continue;
}
if (!arg.startsWith("--")) {
positionals.push(arg);
continue;
}
const eqIndex = arg.indexOf("=");
if (eqIndex !== -1) {
flags[arg.slice(2, eqIndex)] = arg.slice(eqIndex + 1);
continue;
}
const key = arg.slice(2);
const next = argv[i + 1];
if (next && !next.startsWith("--")) {
flags[key] = next;
i += 1;
} else {
flags[key] = true;
}
}
return { flags, positionals };
}
export function getStringFlag(flags, name, envName = null) {
const value = flags[name] ?? (envName ? process.env[envName] : undefined);
if (typeof value !== "string") return "";
return value.trim();
}
export function hasFlag(flags, name) {
return flags[name] === true;
}