UNPKG

@willsoto/node-konfig-core

Version:

Core configuration pacakge supporting file, static and environment variables

9 lines 740 B
/** * Thanks to Anders Hejlsberg for these types: * * https://github.com/ahejlsberg/tsconf2020-demos/blob/b83b9698a8ffd40c63afa63905142ec5c30eb604/template/main.ts#L108-L136 */ export type PathKeys<T> = object extends T ? string : T extends readonly any[] ? Extract<keyof T, `${number}`> | SubKeys<T, Extract<keyof T, `${number}`>> : T extends object ? Extract<keyof T, string> | SubKeys<T, Extract<keyof T, string>> : never; export type SubKeys<T, K extends string> = K extends keyof T ? `${K}.${PathKeys<T[K]>}` : never; export type PropType<T, Path extends string> = Path extends keyof T ? T[Path] : Path extends `${infer K}.${infer R}` ? K extends keyof T ? PropType<T[K], R> : unknown : unknown; //# sourceMappingURL=types.d.ts.map