Files

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);
}
},
};
}