| 38 | if (unit.startsWith("s")) return n * 1000 |
| 39 | if (unit.startsWith("m")) return n * 60_000 |
| 40 | if (unit.startsWith("h")) return n * 3_600_000 |
| 41 | if (unit.startsWith("d")) return n * 86_400_000 |
| 42 | |
| 43 | return n |
| 44 | } |
| 45 | |
| 46 | function parseMaxRuns(value) { |
| 47 | const text = String(value ?? "0").trim() |
| 48 | if (!/^\d+$/.test(text)) throw new Error(`Invalid --max-runs value: ${value}`) |
| 49 | const parsed = Number(text) |
| 50 | if (!Number.isSafeInteger(parsed)) throw new Error(`Invalid --max-runs value: ${value}`) |
| 51 | return parsed |
| 52 | } |
| 53 | |
| 54 | function validateProject(project) { |