export type Theme = Record export type ThemeFns = ((s: string) => string)[] export type Palette = {[K in keyof T]: ((s: string) => string)} export function makePalette(theme: T) { return Object.fromEntries( Object.entries(theme).map(([key, fns]) => [ key, (s: string) => { for (const fn of fns) s = fn(s) return s }, ]) ) as Palette }