UNPKG

transform-to-unocss

Version:

🚀 Effortlessly transform CSS, inline styles, and preprocessors (Sass/Less/Stylus) to UnoCSS with smart conflict resolution and debug support

45 lines (43 loc) • 2.01 kB
import { transformAstro, transformCode, transformHtml, transformJsx, transformSvelte, transformVue } from "./transformCode-C3_TNDsN.js"; import { createFilter } from "@rollup/pluginutils"; import { createUnplugin } from "unplugin"; //#region src/unplugin.ts const unplugin = createUnplugin((options) => { const defaultExclude = ["**/node_modules/**"]; const userExclude = (options === null || options === void 0 ? void 0 : options.exclude) ? Array.isArray(options.exclude) ? options.exclude : [options.exclude] : []; const finalExclude = [...defaultExclude, ...userExclude]; const filter = createFilter(options === null || options === void 0 ? void 0 : options.include, finalExclude); let globalCss = null; return [{ name: "unplugin-transform-to-unocss", enforce: "pre", async configResolved(config) { var _config$css; globalCss = (_config$css = config.css) === null || _config$css === void 0 ? void 0 : _config$css.preprocessorOptions; }, transformInclude(id) { if (id.includes("node_modules")) return false; return filter(id); }, async transform(code, id) { let suffix; if (id.endsWith(".vue")) suffix = "vue"; else if (id.endsWith("lang.tsx")) {} else if (id.endsWith(".tsx")) suffix = "tsx"; if (!suffix) return code; return await transformCode(code, { filepath: id, type: suffix, globalCss }); } }]; }); const viteTransformToUnocss = unplugin.vite; const rollupTransformToUnocss = unplugin.rollup; const webpackTransformToUnocss = unplugin.webpack; const esbuildTransformToUnocss = unplugin.esbuild; const rspackTransformToUnocss = unplugin.rspack; const farmTransformToUnocss = unplugin.farm; const rolldownTransformToUnocss = unplugin.rolldown; //#endregion export { esbuildTransformToUnocss, farmTransformToUnocss, rolldownTransformToUnocss, rollupTransformToUnocss, rspackTransformToUnocss, transformAstro, transformCode, transformHtml, transformJsx, transformSvelte, transformVue, viteTransformToUnocss, webpackTransformToUnocss };