@vue-macros/setup-sfc
Version:
setupSfc feature from Vue Macros.
40 lines (38 loc) • 1.01 kB
JavaScript
import { hotUpdateSetupSFC, transformSetupSFC } from "./core-DQ1Zm1bB.js";
import { REGEX_SETUP_SFC_SUB, createFilter, detectVueVersion } from "@vue-macros/common";
import { createUnplugin } from "unplugin";
//#region src/index.ts
function resolveOptions(options) {
const version = options.version || detectVueVersion();
return {
include: [REGEX_SETUP_SFC_SUB],
exclude: [/vitest\.setup\.\w+$/],
...options,
version
};
}
const name = "unplugin-vue-setup-sfc";
const plugin = createUnplugin((userOptions = {}) => {
const options = resolveOptions(userOptions);
const filter = createFilter(options);
return {
name,
enforce: "pre",
transformInclude: filter,
transform: transformSetupSFC,
vite: {
config() {
return { esbuild: {
exclude: options.include,
include: options.exclude
} };
},
handleHotUpdate: (ctx) => {
if (filter(ctx.file)) return hotUpdateSetupSFC(ctx, filter);
}
}
};
});
var src_default = plugin;
//#endregion
export { src_default };