(
raw: string | undefined,
allowed: readonly T[],
opts: { flag: string },
)
| 81 | |
| 82 | /** Parse an enum-typed flag against a closed set of allowed values. */ |
| 83 | export function parseEnumFlag<T extends string>( |
| 84 | raw: string | undefined, |
| 85 | allowed: readonly T[], |
| 86 | opts: { flag: string }, |
| 87 | ): T | undefined { |
| 88 | if (raw === undefined) return undefined; |
| 89 | if ((allowed as readonly string[]).includes(raw)) return raw as T; |
| 90 | errorBox(`Invalid ${opts.flag}`, `Got "${raw}". Must be one of: ${allowed.join(", ")}.`); |
| 91 | process.exit(1); |
| 92 | } |
| 93 | |
| 94 | function rangeSuffix(opts: { min?: number; max?: number }): string { |
| 95 | if (opts.min !== undefined && opts.max !== undefined) return ` (${opts.min}-${opts.max})`; |
no test coverage detected