Files
DeviceManager/node_modules/vitest/dist/worker.js

95 lines
2.9 KiB
JavaScript

import { performance } from 'node:perf_hooks';
import { c as createBirpc } from './vendor-index.b271ebe4.js';
import { workerId } from 'tinypool';
import { g as getWorkerState } from './vendor-global.97e4527c.js';
import { l as loadEnvironment } from './vendor-environments.c9c96bf7.js';
import { s as startViteNode, m as moduleCache, a as mockMap } from './vendor-execute.a63e187f.js';
import { s as setupInspect } from './vendor-inspector.47fc8cbb.js';
import { r as rpcDone, c as createSafeRpc } from './vendor-rpc.cbd8e972.js';
import 'node:url';
import 'pathe';
import './vendor-index.0b5b3600.js';
import 'acorn';
import 'node:module';
import 'node:fs';
import 'node:assert';
import 'node:process';
import 'node:path';
import 'node:v8';
import 'node:util';
import 'node:console';
import 'local-pkg';
import 'node:vm';
import 'vite-node/client';
import 'vite-node/utils';
import '@vitest/utils/error';
import './vendor-paths.84fc7a99.js';
import '@vitest/utils';
import './vendor-base.9c08bbd0.js';
import 'vite-node/constants';
async function init(ctx) {
if (typeof __vitest_worker__ !== "undefined" && ctx.config.threads && ctx.config.isolate)
throw new Error(`worker for ${ctx.files.join(",")} already initialized by ${getWorkerState().ctx.files.join(",")}. This is probably an internal bug of Vitest.`);
const { config, port, workerId: workerId$1 } = ctx;
process.env.VITEST_WORKER_ID = String(workerId$1);
process.env.VITEST_POOL_ID = String(workerId);
let setCancel = (_reason) => {
};
const onCancel = new Promise((resolve) => {
setCancel = resolve;
});
const rpc = createBirpc(
{
onCancel: setCancel
},
{
eventNames: ["onUserConsoleLog", "onFinished", "onCollected", "onWorkerExit", "onCancel"],
post(v) {
port.postMessage(v);
},
on(fn) {
port.addListener("message", fn);
}
}
);
const environment = await loadEnvironment(ctx.environment.name, ctx.config.root);
if (ctx.environment.transformMode)
environment.transformMode = ctx.environment.transformMode;
const state = {
ctx,
moduleCache,
config,
mockMap,
onCancel,
environment,
durations: {
environment: 0,
prepare: performance.now()
},
rpc: createSafeRpc(rpc)
};
globalThis.__vitest_worker__ = state;
if (ctx.invalidates) {
ctx.invalidates.forEach((fsPath) => {
moduleCache.delete(fsPath);
moduleCache.delete(`mock:${fsPath}`);
});
}
ctx.files.forEach((i) => moduleCache.delete(i));
return state;
}
async function run(ctx) {
const inspectorCleanup = setupInspect(ctx.config);
try {
const state = await init(ctx);
const { run: run2, executor } = await startViteNode({ state });
await run2(ctx.files, ctx.config, { environment: state.environment, options: ctx.environment.options }, executor);
await rpcDone();
} finally {
inspectorCleanup();
}
}
export { run };