configuru
Version:
Manage the configuration of your Nodejs application with multiple environments and custom preferences, utilizing Configuru in CI and development as well!
12 lines (11 loc) • 746 B
TypeScript
import { LoadedValue } from './loader';
type LoadedToValue<X> = X extends LoadedValue<any, any> ? X['value'] extends Record<any, any> ? Values<X['value']> : X['value'] : X;
type Values<C> = C extends (...args: any[]) => any ? C : C extends Record<any, any> ? {
[K in keyof C]: C[K] extends LoadedValue<any, any> ? LoadedToValue<C[K]> : Values<C[K]>;
} : C;
type AnonymousValues<C> = C extends (...args: any[]) => any ? C : C extends Record<any, any> ? {
[K in keyof C]: C[K] extends LoadedValue<any, any> ? string : AnonymousValues<C[K]>;
} : C;
export declare const values: <T extends Record<any, any>>(config: T) => Values<T>;
export declare const maskedValues: <T extends Record<any, any>>(config: T) => AnonymousValues<T>;
export {};