@vue-macros/reactivity-transform
Version:
reactivityTransform feature from Vue Macros.
77 lines (74 loc) • 1.73 kB
JavaScript
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
};