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
TypeScript
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 {};