// src/index.ts import { createCombinePlugin } from "unplugin-combine"; import VueBetterDefine from "@vue-macros/better-define"; import VueDefineModel from "@vue-macros/define-model"; import VueDefineOptions from "unplugin-vue-define-options"; import VueDefineProps from "@vue-macros/define-props"; import VueDefinePropsRefs from "@vue-macros/define-props-refs"; import VueDefineRender from "@vue-macros/define-render"; import VueDefineSlots from "@vue-macros/define-slots"; import VueExportProps from "@vue-macros/export-props"; import VueHoistStatic from "@vue-macros/hoist-static"; import VueNamedTemplate from "@vue-macros/named-template"; import VueReactivityTransform from "@vue-macros/reactivity-transform"; import VueSetupBlock from "@vue-macros/setup-block"; import VueSetupComponent from "@vue-macros/setup-component"; import VueSetupSFC from "@vue-macros/setup-sfc"; import VueShortEmits from "@vue-macros/short-emits"; import VueSingleDefine from "@vue-macros/single-define"; import { detectVueVersion } from "@vue-macros/common"; import { Devtools } from "@vue-macros/devtools"; function resolveOptions({ root, version, plugins, isProduction, nuxtContext, betterDefine, defineModel, defineOptions, defineProps, definePropsRefs, defineRender, defineSlots, exportProps, hoistStatic, namedTemplate, reactivityTransform, setupBlock, setupComponent, setupSFC, shortEmits, singleDefine }) { function resolveSubOptions(options, commonOptions, defaultEnabled = true) { options = options ?? defaultEnabled; if (!options) return false; return { ...options === true ? {} : options, ...commonOptions }; } root = root || process.cwd(); version = version || detectVueVersion(root); isProduction = isProduction ?? process.env.NODE_ENV === "production"; return { plugins: plugins || {}, root, version, isProduction, nuxtContext: nuxtContext || {}, betterDefine: resolveSubOptions(betterDefine, { version, isProduction }), defineModel: resolveSubOptions(defineModel, { version }), defineOptions: resolveSubOptions(defineOptions, { version }), defineProps: resolveSubOptions(defineProps, { version }), definePropsRefs: resolveSubOptions(definePropsRefs, { version }), defineRender: resolveSubOptions(defineRender, { version }), defineSlots: resolveSubOptions(defineSlots, { version }), exportProps: resolveSubOptions(exportProps, { version }), hoistStatic: resolveSubOptions(hoistStatic, { version }), namedTemplate: resolveSubOptions(namedTemplate, { version }), reactivityTransform: resolveSubOptions( reactivityTransform, { version } ), setupBlock: resolveSubOptions(setupBlock, { version }, false), setupComponent: resolveSubOptions(setupComponent, { version, root }), setupSFC: resolveSubOptions(setupSFC, { version }), shortEmits: resolveSubOptions(shortEmits, { version }), singleDefine: resolveSubOptions(singleDefine, { isProduction, version }) }; } function resolvePlugin(unplugin, framework, options) { if (!options) return; return unplugin[framework](options); } var name = "unplugin-vue-macros"; var src_default = createCombinePlugin( (userOptions = {}, meta) => { const options = resolveOptions(userOptions); const framework = meta.framework; const setupComponentPlugins = resolvePlugin( VueSetupComponent, framework, options.setupComponent ); const namedTemplatePlugins = resolvePlugin( VueNamedTemplate, framework, options.namedTemplate ); const plugins = [ resolvePlugin(VueSetupSFC, framework, options.setupSFC), setupComponentPlugins == null ? void 0 : setupComponentPlugins[0], resolvePlugin(VueSetupBlock, framework, options.setupBlock), namedTemplatePlugins == null ? void 0 : namedTemplatePlugins[0], resolvePlugin(VueSingleDefine, framework, options.singleDefine), resolvePlugin(VueDefineProps, framework, options.defineProps), resolvePlugin(VueDefinePropsRefs, framework, options.definePropsRefs), resolvePlugin(VueExportProps, framework, options.exportProps), resolvePlugin(VueShortEmits, framework, options.shortEmits), resolvePlugin(VueDefineModel, framework, options.defineModel), resolvePlugin(VueDefineSlots, framework, options.defineSlots), resolvePlugin( VueReactivityTransform, framework, options.reactivityTransform ), resolvePlugin(VueBetterDefine, framework, options.betterDefine), resolvePlugin(VueHoistStatic, framework, options.hoistStatic), resolvePlugin(VueDefineOptions, framework, options.defineOptions), options.plugins.vue, options.plugins.vueJsx, resolvePlugin(VueDefineRender, framework, options.defineRender), setupComponentPlugins == null ? void 0 : setupComponentPlugins[1], namedTemplatePlugins == null ? void 0 : namedTemplatePlugins[1], framework === "vite" ? Devtools({ nuxtContext: options.nuxtContext }) : void 0 ].filter(Boolean); return { name, plugins }; } ); export { src_default };