fix: parse cron stagger strings strictly · openclaw/openclaw@ca87241
steipete
·
2026-05-29
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -21,6 +21,8 @@ describe("cron stagger helpers", () => {
|
21 | 21 | expect(normalizeCronStaggerMs(-10)).toBe(0); |
22 | 22 | expect(normalizeCronStaggerMs("")).toBeUndefined(); |
23 | 23 | expect(normalizeCronStaggerMs("abc")).toBeUndefined(); |
| 24 | +expect(normalizeCronStaggerMs("1e3")).toBeUndefined(); |
| 25 | +expect(normalizeCronStaggerMs("0x10")).toBeUndefined(); |
24 | 26 | }); |
25 | 27 | |
26 | 28 | it("resolves effective stagger for cron schedules", () => { |
|
| Original file line number | Diff line number | Diff line change |
|---|
|
| 1 | +import { parseStrictNonNegativeInteger } from "../infra/parse-finite-number.js"; |
1 | 2 | import type { CronSchedule } from "./types.js"; |
2 | 3 | |
3 | 4 | export const DEFAULT_TOP_OF_HOUR_STAGGER_MS = 5 * 60 * 1000; |
@@ -24,7 +25,7 @@ export function normalizeCronStaggerMs(raw: unknown): number | undefined {
|
24 | 25 | typeof raw === "number" |
25 | 26 | ? raw |
26 | 27 | : typeof raw === "string" && raw.trim() |
27 | | - ? Number(raw) |
| 28 | + ? (parseStrictNonNegativeInteger(raw) ?? Number.NaN) |
28 | 29 | : Number.NaN; |
29 | 30 | if (!Number.isFinite(numeric)) { |
30 | 31 | return undefined; |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。