UNPKG

@kuma-ui/compiler

Version:

🐻 Kuma UI is a utility-first, zero-runtime CSS-in-JS library that offers an outstanding developer experience and optimized performance.

56 lines (53 loc) 1.36 kB
import { extractPseudoAttribute } from "./chunk-LWP6AE5D.mjs"; import { decode } from "./chunk-4VG2IAQS.mjs"; import { handleJsxExpression } from "./chunk-CSBP7RYO.mjs"; // src/collector/collect.ts import { Node } from "ts-morph"; var collectPropsFromJsx = (node) => { const jsxAttributes = node.getAttributes(); const extracted = {}; jsxAttributes.forEach((jsxAttribute) => { if (Node.isJsxAttribute(jsxAttribute)) { const propName = jsxAttribute.getNameNode().getText(); let propValue; if (propName.trim().startsWith("_")) { propValue = extractPseudoAttribute(jsxAttribute); } else { propValue = extractAttribute(jsxAttribute); } if (propValue == void 0) return; extracted[propName] = propValue; } }); return extracted; }; var extractAttribute = (jsxAttribute) => { const initializer = jsxAttribute.getInitializer(); if (Node.isStringLiteral(initializer)) { const value = initializer.getLiteralText(); return value; } if (Node.isJsxExpression(initializer)) { const expression = initializer.getExpression(); if (!expression) return; const decodedNode = decode(expression); return handleJsxExpression(decodedNode); } if (initializer === void 0) { return true; } return void 0; }; export { collectPropsFromJsx };