mirror of
https://github.com/FJurmanovic/sugarr.git
synced 2026-11-11 07:41:08 +00:00
loadEnv's ZodSchema<T> parameter required schema input === output,
which breaks any schema using .transform() (e.g. AppConfigSchema's
boolean coercion). Widen to ZodType<T, ZodTypeDef, unknown>, matching
existing runtime behavior. Also allow ignoreRestSiblings in the
no-unused-vars rule so 'const { X, ...rest } = obj' omission tests
don't trip the linter.
13 lines
348 B
TypeScript
13 lines
348 B
TypeScript
import type { ZodType, ZodTypeDef } from 'zod';
|
|
|
|
export function loadEnv<T>(
|
|
schema: ZodType<T, ZodTypeDef, unknown>,
|
|
source: NodeJS.ProcessEnv = process.env
|
|
): T {
|
|
const result = schema.safeParse(source);
|
|
if (!result.success) {
|
|
throw new Error(`Invalid environment configuration: ${result.error.message}`);
|
|
}
|
|
return result.data;
|
|
}
|