mirror of
https://github.com/hanzoai/vitest.git
synced 2026-09-24 17:04:25 +00:00
41 lines
869 B
TypeScript
41 lines
869 B
TypeScript
import { defineConfig, mergeConfig } from "vitest/config";
|
|
import swc from "unplugin-swc";
|
|
import type { Plugin } from "vite";
|
|
|
|
import base from "./vitest.config";
|
|
|
|
export default mergeConfig(
|
|
base,
|
|
defineConfig({
|
|
plugins: process.env.TEST_OXC_DECORATOR ? [] : [DecoratorsPlugin()],
|
|
test: {},
|
|
})
|
|
);
|
|
|
|
function DecoratorsPlugin(): Plugin {
|
|
const plugin = swc.vite({
|
|
jsc: {
|
|
target: "esnext",
|
|
parser: {
|
|
syntax: "typescript",
|
|
decorators: true,
|
|
},
|
|
transform: {
|
|
legacyDecorator: true,
|
|
decoratorMetadata: true,
|
|
},
|
|
},
|
|
});
|
|
|
|
return {
|
|
name: "custom-swc-decorator",
|
|
enforce: "pre",
|
|
transform(code, id, options) {
|
|
if (id.endsWith("decorators.ts")) {
|
|
// @ts-expect-error -- Ignore complex type
|
|
return plugin.transform(code, id, options);
|
|
}
|
|
},
|
|
};
|
|
}
|