UNPKG

object-path-generator

Version:
10 lines (9 loc) 690 B
type DeepRequired<T = any> = { [K in keyof T]-?: NonNullable<T[K]> extends Function ? NonNullable<T[K]> : DeepRequired<NonNullable<T[K]>>; }; type PropertyType<PropertyType, GeneralType> = () => GeneralType extends undefined ? PropertyType : GeneralType; type PathGenElements<T, R = undefined> = { [K in keyof T]: T[K] extends (...args: any[]) => any ? T[K] : T[K] extends object ? PathGenElements<T[K], R> : PropertyType<T[K], R>; }; export declare const pathgen: <T = any, R = undefined>(root?: string, customFn?: (path: string, ...options: any[]) => any) => PathGenElements<DeepRequired<T>, R extends undefined ? (typeof customFn extends undefined ? string : R) : R>; export {};