UNPKG

@vue-macros/reactivity-transform

Version:

reactivityTransform feature from Vue Macros.

77 lines (74 loc) 1.73 kB
import { code_default, helperId, shouldTransform, transform, transformVueSFC } from "./chunk-XX62DH66.js"; // src/index.ts import { createFilter, createRollupFilter, detectVueVersion, FilterFileType, getFilterPattern, normalizePath, REGEX_NODE_MODULES } from "@vue-macros/common"; import { createUnplugin } from "unplugin"; function resolveOptions(options, framework) { const version = options.version || detectVueVersion(); const include = getFilterPattern( [FilterFileType.SRC_FILE, FilterFileType.VUE_SFC_WITH_SETUP], framework ); return { include, exclude: [REGEX_NODE_MODULES], ...options, version }; } var name = "unplugin-vue-reactivity-transform"; var plugin = createUnplugin( (userOptions = {}, { framework }) => { const options = resolveOptions(userOptions, framework); const filter = createFilter(options); const filterSFC = createRollupFilter( getFilterPattern( [FilterFileType.VUE_SFC_WITH_SETUP, FilterFileType.SETUP_SFC], framework ) ); return { name, enforce: "pre", resolveId(id) { if (id === normalizePath(helperId)) return id; }, loadInclude(id) { return normalizePath(id) === helperId; }, load(id) { if (normalizePath(id) === helperId) return code_default; }, transformInclude: filter, transform(code, id) { if (filterSFC(id)) { return transformVueSFC(code, id); } else if (shouldTransform(code)) { return transform(code, { filename: id, sourceMap: true }); } } }; } ); var index_default = plugin; export { index_default };