UNPKG

unnestcss

Version:
1 lines 1.79 kB
{"mappings":"AAUA,cAAc,SAAS,kBAAkB;AAEzC,OAAO,cAAM,YACX,SAAS,SACT,gBACA,UAAU,WACV,UAAU;KAgCP;CAAkB;CAAG;KACxB,SAAS,GACT,eACA,UAAU,KACV,UAAU,kBAAkB,GAAG,OAC5B;AAEL,OAAO,cAAM;CAAa;CAAG;EAC3B,UAAU,KACV,UAAU,kBAAkB,GAAG","names":[],"sources":["../../../../src/lib/stylis/serializer.ts"],"sourcesContent":["import {\n IMPORT,\n LAYER,\n COMMENT,\n RULESET,\n DECLARATION,\n KEYFRAMES,\n NAMESPACE,\n COMMA,\n} from \"./enum.ts\";\nimport type { Element, Middleware } from \"./types.ts\";\n\nexport const stringify = (\n element: Element,\n _index: number,\n children: Element[],\n callback: Middleware,\n): string => {\n switch (element.type) {\n case LAYER:\n if (element.children.length) {\n break;\n }\n case IMPORT:\n case NAMESPACE:\n case DECLARATION:\n return (element.return = element.return || element.value);\n case COMMENT:\n return \"\";\n case KEYFRAMES:\n element.return = `${element.value}{${serialize(element.children, callback)}}`;\n return element.return;\n case RULESET:\n element.value = element.props.join(COMMA);\n if (element.value === \"\") {\n return \"\";\n }\n }\n\n children = serialize(element.children, callback) as any;\n\n if (children) {\n element.return = `${element.value}{${children}}`;\n return element.return;\n }\n return \"\";\n};\n\ntype SerializeCallback<T, R> = (\n element: T,\n index: number,\n children: T[],\n callback: SerializeCallback<T, R>,\n) => R;\n\nexport const serialize = <T, F = unknown>(\n children: T[],\n callback: SerializeCallback<T, F>,\n): string =>\n children.reduce(\n (output, child, index) => output + (callback(child, index, children, callback) || \"\"),\n \"\",\n );\n"],"version":3,"file":"serializer.d.ts"}