33 lines
893 B
JavaScript
33 lines
893 B
JavaScript
import { spawn } from "node:child_process";
|
|
import { resolve } from "node:path";
|
|
|
|
const vitestEntrypoint = resolve(process.cwd(), "node_modules/vitest/vitest.mjs");
|
|
const args = process.argv.slice(2);
|
|
const warningFlag = "--disable-warning=ExperimentalWarning";
|
|
const env = { ...process.env };
|
|
const existingNodeOptions = env.NODE_OPTIONS?.trim();
|
|
|
|
if (!existingNodeOptions) {
|
|
env.NODE_OPTIONS = warningFlag;
|
|
} else if (!existingNodeOptions.includes(warningFlag)) {
|
|
env.NODE_OPTIONS = `${existingNodeOptions} ${warningFlag}`;
|
|
}
|
|
|
|
const child = spawn(process.execPath, ["--disable-warning=ExperimentalWarning", vitestEntrypoint, ...args], {
|
|
stdio: "inherit",
|
|
env,
|
|
});
|
|
|
|
child.on("exit", (code, signal) => {
|
|
if (signal) {
|
|
process.kill(process.pid, signal);
|
|
return;
|
|
}
|
|
process.exit(code ?? 1);
|
|
});
|
|
|
|
child.on("error", (error) => {
|
|
console.error(error);
|
|
process.exit(1);
|
|
});
|