UNPKG

postcss-d-ts

Version:

PostCSS plugin to generate `.d.ts` of all used CSS classes and ids in imported stylesheets

25 lines (24 loc) 1.15 kB
export declare type Picker<T, K extends string> = { [k in K]?: T extends { [_ in k]?: infer V; } ? V : undefined; }; export declare type Replace<Base, R extends { [k in keyof Base]?: any; }> = [Exclude<keyof R, keyof Base>] extends [never] ? Omit<Base, keyof R> & Pick<R, keyof Base> : never; export declare type Part<T> = { [P in keyof T]?: T[P]; }; declare type DefaultsAndExamples = { "default"?: unknown; "examples"?: unknown[]; }; export declare type SchemaWithDefaultsAndExamples = { "properties": Record<string, DefaultsAndExamples>; }; export declare type SchemaDeclaredValues<T extends DefaultsAndExamples> = T["default"] | (T["examples"] extends any[] ? SchemaExampleToType<Extract<T["examples"], any[]>[number], "properties" extends keyof T ? true : false> : never); declare type SchemaExampleToType<T, Strict extends boolean> = T extends Record<string, any> ? Strict extends true ? T : Record<string, T[keyof T]> : T; export declare type DefaultsAndExamplesFromSchema<S extends SchemaWithDefaultsAndExamples> = { [K in keyof S["properties"]]: SchemaDeclaredValues<S["properties"][K]>; }; export {};