@vue-macros/test-utils
Version:
Test utilities for Vue Macros.
34 lines (32 loc) • 1.45 kB
JavaScript
import { RollupEscapeNullCharacterPlugin, RollupEscapeNullCharacterPlugin as RollupEscapeNullCharacterPlugin$1, RollupToStringPlugin, removeSpaces, rollupBuild as rollupBuild$1, testFixtures, testFixturesSkip } from "@sxzz/test-utils";
import ViteVueJsx from "@vitejs/plugin-vue-jsx";
import { Oxc as UnpluginOxc } from "unplugin-oxc";
import RollupVue from "unplugin-vue/rollup";
import RollupJson from "@rollup/plugin-json";
import { nodeResolve as RollupNodeResolve } from "@rollup/plugin-node-resolve";
//#region src/rollup.ts
const RollupVueJsx = ViteVueJsx;
const RollupRemoveVueFilePathPlugin = () => {
const REGEX = [/\[["']__file["'],\s*["'](.*?)["']\]/g, /__component__\.options\.__file.*/];
return {
name: "remove-vue-filepath",
transform(code) {
const transformed = code.replaceAll(REGEX[0], "__FILE__").replace(REGEX[1], "__FILE__");
if (code !== transformed) return transformed;
}
};
};
async function rollupBuild(file, plugins) {
const { snapshot } = await rollupBuild$1(file, plugins, {
external: [
"vue",
"@vueuse/core",
/^\0.*/,
/^\/vue-macros\/.*/
],
plugins: [RollupEscapeNullCharacterPlugin$1(), RollupRemoveVueFilePathPlugin()]
});
return snapshot;
}
//#endregion
export { RollupEscapeNullCharacterPlugin, RollupJson, RollupNodeResolve, RollupRemoveVueFilePathPlugin, RollupToStringPlugin, RollupVue, RollupVueJsx, UnpluginOxc, removeSpaces, rollupBuild, testFixtures, testFixturesSkip };