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.

68 lines (66 loc) 1.71 kB
import { compile } from "./chunk-ERVUHPCG.mjs"; import "./chunk-QJKYKNZQ.mjs"; import "./chunk-EHUF2A4S.mjs"; import "./chunk-2ACMC6EM.mjs"; import "./chunk-LJ76POXC.mjs"; import "./chunk-SWZQTPQ4.mjs"; import "./chunk-HIVZARW3.mjs"; import "./chunk-LWP6AE5D.mjs"; import "./chunk-4VG2IAQS.mjs"; import "./chunk-CSBP7RYO.mjs"; // src/index.ts import { transformSync as babelTransformSync } from "@babel/core"; import plugin from "@kuma-ui/babel-plugin"; import { sheet } from "@kuma-ui/sheet"; import { transformSync } from "@kuma-ui/wasm"; var compileSync = ({ code, id, wasm }) => { const result = { code: "", bindings: {} }; if (wasm) { const extension = (() => { const ext = id.split(".").pop(); if (!ext) return "tsx"; switch (ext) { case "ts": return "ts"; case "tsx": return "tsx"; case "js": return "js"; case "jsx": return "jsx"; default: return "tsx"; } })(); const { code: source_code, imports } = transformSync(code, extension); result.code = source_code || ""; result.bindings = imports; } else { const transformed = babelTransformSync(code, { filename: id, sourceMaps: true, plugins: [plugin] }); if (!transformed || !transformed.code) return; const bindings = transformed.metadata.bindings; result.code = transformed.code || ""; result.bindings = bindings; } const compiled = compile(result.code, id, result.bindings); const compiledResult = { code: compiled.code, css: sheet.getCSS() + compiled.css }; sheet.reset(); return compiledResult; }; export { compileSync };