UNPKG

react-native-unistyles

Version:
15 lines 829 B
export type ExtractVariantNames<T> = T extends (...args: any) => infer R ? ExtractVariantKeys<R> : ExtractVariantKeys<T>; type ExtractVariantKeys<T> = T extends object ? ExtractVariant<T[keyof T]> : never; type HasBooleanVariants<T> = T extends Record<'true', any> ? true : T extends Record<'false', any> ? true : false; type ExtractSubVariantKeys<T> = T extends object ? HasBooleanVariants<T> extends true ? keyof Omit<T, 'default'> | boolean | undefined : keyof Omit<T, 'default'> | undefined : never; type ExtractVariant<T> = T extends (...args: any) => infer R ? R extends { variants: infer V; } ? { [key in keyof V]?: ExtractSubVariantKeys<V[key]>; } : never : T extends { variants: infer V; } ? { [key in keyof V]?: ExtractSubVariantKeys<V[key]>; } : never; export {}; //# sourceMappingURL=variants.d.ts.map