import process from 'node:process'; import type { JestWorkerFarm } from 'jest-worker'; import { Worker as JestWorker } from 'jest-worker'; const sharedWorkerOptions = { numWorkers: 1, enableWorkerThreads: true, forkOptions: { env: { ...process.env, NODE_OPTIONS: process.env.NODE_OPTIONS } } } satisfies ConstructorParameters[1]; export function createWorker>(workerPath: string) { return >(exposedMethods: K): JestWorkerFarm> => { const worker = new JestWorker(workerPath, { ...sharedWorkerOptions, exposedMethods }) as JestWorkerFarm>; worker.getStdout().pipe(process.stdout); worker.getStderr().pipe(process.stderr); return worker; }; }