UNPKG

envdef

Version:

Node.js environment variable parser & validator.

26 lines 1.15 kB
type HasDuplicates<T extends readonly any[], Seen extends string = never> = T extends readonly [infer First, ...infer Rest] ? First extends { name: infer N extends string; } ? N extends Seen ? true : HasDuplicates<Rest extends readonly any[] ? Rest : [], Seen | N> : false : false; /** * Environment variable definition schema. */ export interface EnvDefItem<Name extends string = string> { name: Name; optional?: boolean; default?: string; nonProdDefault?: string; validate?: (value: string | undefined) => boolean; } /** * Parses environment variables in accordance with definitions. * * @param defs env var definition array * @param source `process.env` by default * @returns {object} environment variable name-value map * @throws {EnvDefError} on environment variable validation fail */ export declare function envdef<T extends readonly EnvDefItem<string>[], Names = T[number]['name'], D extends boolean = HasDuplicates<T>>(defs: D extends true ? ["❌ Duplicate 'name' values are not allowed"] & T : T, source?: object): { [K in Names & string]: string; }; export {}; //# sourceMappingURL=envdef.d.ts.map