configuru
Version:
Manage the configuration of your Nodejs application with multiple environments and custom preferences, utilizing Configuru in CI and development as well!
63 lines (62 loc) • 2.86 kB
TypeScript
export interface ConfigLoaderOptions {
defaultConfigPath?: string;
userConfigPath?: string;
envMode?: 'all' | 'default' | 'merged' | 'none';
}
export interface LoadedValue<T, N extends boolean, R = N extends false ? T : T | null> {
rawValue: any;
value: R;
hidden: boolean;
nullable: boolean;
__CONFIGURU_LEAF: true;
}
export declare const createAtomLoaderFactory: (storage: Record<any, any>) => <T>(transform: (x: any) => T) => ((key: string) => LoadedValue<T, false, T>) & {
hidden: ((key: string) => LoadedValue<T, false, T>) & {
nullable: (key: string) => LoadedValue<T, true, T | null>;
};
nullable: ((key: string) => LoadedValue<T, true, T | null>) & {
hidden: (key: string) => LoadedValue<T, true, T | null>;
};
};
export declare const createLoader: (opts?: ConfigLoaderOptions) => {
number: ((key: string) => LoadedValue<number, false, number>) & {
hidden: ((key: string) => LoadedValue<number, false, number>) & {
nullable: (key: string) => LoadedValue<number, true, number | null>;
};
nullable: ((key: string) => LoadedValue<number, true, number | null>) & {
hidden: (key: string) => LoadedValue<number, true, number | null>;
};
};
string: ((key: string) => LoadedValue<string, false, string>) & {
hidden: ((key: string) => LoadedValue<string, false, string>) & {
nullable: (key: string) => LoadedValue<string, true, string | null>;
};
nullable: ((key: string) => LoadedValue<string, true, string | null>) & {
hidden: (key: string) => LoadedValue<string, true, string | null>;
};
};
bool: ((key: string) => LoadedValue<boolean, false, boolean>) & {
hidden: ((key: string) => LoadedValue<boolean, false, boolean>) & {
nullable: (key: string) => LoadedValue<boolean, true, boolean | null>;
};
nullable: ((key: string) => LoadedValue<boolean, true, boolean | null>) & {
hidden: (key: string) => LoadedValue<boolean, true, boolean | null>;
};
};
json: ((key: string) => LoadedValue<any, false, any>) & {
hidden: ((key: string) => LoadedValue<any, false, any>) & {
nullable: (key: string) => LoadedValue<any, true, any>;
};
nullable: ((key: string) => LoadedValue<any, true, any>) & {
hidden: (key: string) => LoadedValue<any, true, any>;
};
};
custom: <T>(fn: (x: any) => T) => ((key: string) => LoadedValue<T, false, T>) & {
hidden: ((key: string) => LoadedValue<T, false, T>) & {
nullable: (key: string) => LoadedValue<T, true, T | null>;
};
nullable: ((key: string) => LoadedValue<T, true, T | null>) & {
hidden: (key: string) => LoadedValue<T, true, T | null>;
};
};
};