UNPKG

@vue-jsx-vapor/macros

Version:
54 lines (51 loc) 1.77 kB
import { a as helperPrefix, c as with_defaults_default, l as use_model_default, n as transformJsxMacros, o as useModelHelperId, s as withDefaultsHelperId } from "./core-CyBXDBOb.js"; import { t as resolveOptions } from "./options-BjmC0ExR.js"; import { createFilter, normalizePath } from "@vue-macros/common"; import { compileStyleAsync } from "@vue/compiler-sfc"; //#region src/core/style.ts async function transformStyle(code, id, options) { const query = new URLSearchParams(id.split("?")[1]); return (await compileStyleAsync({ filename: id, id: `data-v-${query.get("scopeId")}`, isProd: options.isProduction, source: code, scoped: query.get("scoped") === "true" })).code; } //#endregion //#region src/raw.ts const name = "@vue-jsx-vapor/macros"; const plugin = (userOptions = {}) => { const options = resolveOptions(userOptions); const filter = createFilter(options); const importMap = /* @__PURE__ */ new Map(); return { name, enforce: "pre", resolveId(id) { if (normalizePath(id).startsWith(helperPrefix)) return id; }, loadInclude(id) { return normalizePath(id).startsWith(helperPrefix); }, load(_id) { const id = normalizePath(_id); if (id === useModelHelperId) return use_model_default; else if (id === withDefaultsHelperId) return with_defaults_default; else if (importMap.get(id)) return importMap.get(id); }, transformInclude(id) { if (importMap.get(id)) return true; return filter(id); }, transform(code, id, opt) { if (opt?.ssr) options.defineComponent.autoReturnFunction = true; if (importMap.get(id)) return transformStyle(code, id, options); return transformJsxMacros(code, id, importMap, options); } }; }; var raw_default = plugin; //#endregion export { raw_default as t };