mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-03 17:24:05 +00:00
36 lines
842 B
JavaScript
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;
|
|
},
|
|
};
|
|
},
|
|
};
|
|
}
|