File size: 479 Bytes
84c1942 | 1 2 3 4 5 6 7 8 9 10 11 12 | import Color from 'color';
import { decorateSelector } from './decorateSelector';
type NestedColor = { [P in keyof Color]: (val: number) => NestedColor } &
(() => string);
export const createTheme = <T>(colors: T): { [P in keyof T]: NestedColor } =>
Object.keys(colors)
.map(c => ({ key: c, value: colors[c] }))
.map(({ key, value }) => ({ key, value: decorateSelector(() => value) }))
.reduce((prev, { key, value }) => ({ ...prev, [key]: value }), {}) as any;
|