@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
JavaScript
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
};