@vue-macros/jsx-directive
Version:
jsxDirective feature from Vue Macros.
32 lines (30 loc) • 993 B
JavaScript
import { transformJsxDirective } from "./core-C0tCr7mj.js";
import { FilterFileType, REGEX_NODE_MODULES, REGEX_SETUP_SFC, createFilter, detectVueVersion, getFilterPattern } from "@vue-macros/common";
//#region src/core/plugin.ts
function resolveOptions(options, framework) {
const version = options.version || detectVueVersion();
const include = getFilterPattern([FilterFileType.VUE_SFC, FilterFileType.SRC_FILE], framework);
return {
include,
exclude: [REGEX_NODE_MODULES, REGEX_SETUP_SFC],
...options,
prefix: options.prefix ?? "v-",
lib: options.lib ?? "vue",
version
};
}
const name = "unplugin-vue-jsx-directive";
const plugin = (userOptions = {}, { framework } = { framework: "vite" }) => {
const options = resolveOptions(userOptions, framework);
const filter = createFilter(options);
return {
name,
enforce: "pre",
transformInclude: filter,
transform(code, id) {
return transformJsxDirective(code, id, options);
}
};
};
//#endregion
export { plugin };