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