UNPKG

@vue-jsx-vapor/macros

Version:
88 lines (85 loc) 2.6 kB
const require_core = require('./core-2PU6fbVE.cjs'); const require_options = require('./options-C2oSBItk.cjs'); //#region src/core/style.ts let compileStyleAsync; async function getCompileStyleAsync() { if (compileStyleAsync) return compileStyleAsync; const require$1 = require_core.getRequire(); try { return compileStyleAsync = require$1 ? require$1("vue/compiler-sfc").compileStyleAsync : (await import("https://esm.sh/@vue/compiler-sfc")).compileStyleAsync; } catch {} } async function transformStyle(code, id, options) { const query = new URLSearchParams(id.split("?")[1]); const compileStyleAsync$1 = await getCompileStyleAsync(); if (!compileStyleAsync$1) { console.warn(`Cannot require vue/compiler-sfc, please install Vue first.`); return ""; } return (await compileStyleAsync$1({ 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 plugin = (userOptions = {}) => { const options = require_options.resolveOptions(userOptions); const importMap = /* @__PURE__ */ new Map(); const defineStyleRegex = /^\/vue-jsx-vapor\/macros\/define-style/; return [{ name: "@vue-jsx-vapor/macros", enforce: "pre", resolveId: { filter: { id: { include: [require_core.useModelHelperId, require_core.withDefaultsHelperId] } }, handler(id) { return id; } }, load: { filter: { id: { include: [require_core.useModelHelperId, require_core.withDefaultsHelperId] } }, handler(id) { if (id === require_core.useModelHelperId) return require_core.use_model_default; if (id === require_core.withDefaultsHelperId) return require_core.with_defaults_default; } }, transform: { filter: { id: { include: options.include || /\.[cm]?[jt]sx$/ } }, handler(code, id, opt) { if (opt?.ssr) options.defineComponent.autoReturnFunction = true; return require_core.transformJsxMacros(code, id, importMap, options); } } }, { name: "@vue-jsx-vapor/macros/define-style", resolveId: { filter: { id: { include: defineStyleRegex } }, handler(id) { return id; } }, load: { filter: { id: { include: defineStyleRegex } }, handler(id) { return importMap.get(id); } }, transform: { filter: { id: { include: defineStyleRegex } }, handler(code, id) { return transformStyle(code, id, options); } } }]; }; var raw_default = plugin; //#endregion Object.defineProperty(exports, 'raw_default', { enumerable: true, get: function () { return raw_default; } });