UNPKG

gnablib

Version:

A lean, zero dependency library to provide a useful base for your project.

16 lines (15 loc) 839 B
/*! Copyright 2023-2024 the gnablib contributors MPL-1.1 */ export type ConfigValue = boolean | string | number; export type ValueSetter = (value: ConfigValue) => void; export interface IConfigEnvCollector { importEnv(key: string, proc: (value: string | undefined, set: ValueSetter) => void): IConfigEnvCollector; importAvailEnv(key: string, proc: (value: string, set: ValueSetter) => void): IConfigEnvCollector; } export interface IConfigOracle { define(key: string, defaultValue: ConfigValue, guard?: boolean): IConfigEnvCollector; set(key: string, value: ConfigValue, reason?: string): void; getBool(key: string, def?: boolean): boolean; getInvertedBool(key: string, def?: boolean): boolean; getString(key: string, def?: string): string; getValueReason(key: string): [ConfigValue, string] | undefined; }