Skip to content

Commit 233f7bd

Browse files
committed
fix(env): allow zero in envNumber for max-throughput configs
1 parent aba896c commit 233f7bd

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

apps/sim/lib/core/config/env.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -517,16 +517,18 @@ export { getEnv }
517517

518518
/**
519519
* Coerce an env-derived value to a positive finite number, falling back to the
520-
* provided default when the value is unset, empty, non-finite, or ≤ 0.
520+
* provided default when the value is unset, empty, non-finite, or negative.
521+
* Zero is accepted — some configs (e.g. `KB_CONFIG_DELAY_BETWEEN_BATCHES`)
522+
* use `0` to mean "no delay / max throughput".
521523
*
522524
* `createEnv` is configured with `skipValidation: true`, so values declared as
523525
* `z.number()` arrive as raw strings when sourced from `process.env` or Helm.
524526
* Use this helper anywhere a numeric env override is consumed to normalize the
525527
* type at the boundary instead of relying on JS implicit coercion.
526528
*/
527529
export function envNumber(value: number | string | undefined | null, fallback: number): number {
528-
if (typeof value === 'number' && Number.isFinite(value) && value > 0) return value
530+
if (typeof value === 'number' && Number.isFinite(value) && value >= 0) return value
529531
if (value === undefined || value === null || value === '') return fallback
530532
const parsed = Number(value)
531-
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback
533+
return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback
532534
}

packages/testing/src/mocks/env.mock.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ export function createEnvMock(overrides: Record<string, string | undefined> = {}
5454
? value.toLowerCase() === 'false' || value === '0'
5555
: value === false,
5656
envNumber: (value: number | string | undefined | null, fallback: number): number => {
57-
if (typeof value === 'number' && Number.isFinite(value) && value > 0) return value
57+
if (typeof value === 'number' && Number.isFinite(value) && value >= 0) return value
5858
if (value === undefined || value === null || value === '') return fallback
5959
const parsed = Number(value)
60-
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback
60+
return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback
6161
},
6262
}
6363
}

0 commit comments

Comments
 (0)