Files
openclaw/scripts/lib/budget-number-args.mjs
2026-05-29 22:44:38 +02:00

36 lines
842 B
JavaScript

export function parseBudgetNumber(raw, label) {
const value = raw?.trim();
if (!value) {
return null;
}
const parsed = Number(value);
if (!Number.isFinite(parsed) || parsed < 0) {
throw new Error(`${label} must be a non-negative number`);
}
return parsed;
}
export function readBudgetEnvNumber(name, env = process.env) {
return parseBudgetNumber(env[name], name);
}
export function budgetFloatFlag(flag, key) {
return {
consume(argv, index) {
if (argv[index] !== flag) {
return null;
}
return {
nextIndex: index + 1,
apply(target) {
const parsed = parseBudgetNumber(argv[index + 1], flag);
if (parsed === null) {
throw new Error(`${flag} requires a value`);
}
target[key] = parsed;
},
};
},
};
}