UNPKG

playwright-elements

Version:
13 lines (12 loc) 981 B
export type PageObject<T extends Record<string, any>, Suffix extends string = DefaultSuffix> = Instances<T, Suffix>; type LowercaseFirst<T extends string> = T extends `${infer First}${infer Rest}` ? `${Lowercase<First>}${Rest}` : T; export type Instances<T extends Record<string, any>, Suffix extends string, LowercaseFlag extends boolean = true> = { [K in keyof T as K extends `${infer Base}${Suffix}` ? LowercaseFlag extends true ? LowercaseFirst<Base> : Base : never]: T[K] extends new (...args: any[]) => infer Instance ? Instance : never; }; type DefaultSuffix = 'Page'; type Options<Suffix extends string = DefaultSuffix, LowercaseFlag extends boolean = true> = { suffix?: Suffix; lowerCaseFirst?: LowercaseFlag; }; export declare function buildPageObject<T extends Record<string, any>, Suffix extends string = DefaultSuffix, LowercaseFlag extends boolean = true>(mod: T, options?: Options<Suffix, LowercaseFlag>): Instances<T, Suffix, LowercaseFlag>; export {};