(workerObject, isPoolMode = false)
| 57 | } |
| 58 | |
| 59 | const createWorker = (workerObject, isPoolMode = false) => { |
| 60 | const worker = new Worker(pathToWorker, { |
| 61 | workerData: { |
| 62 | options: simplifyObject(workerObject.options), |
| 63 | tests: workerObject.tests, |
| 64 | testRoot: workerObject.testRoot, |
| 65 | workerIndex: workerObject.workerIndex + 1, |
| 66 | poolMode: isPoolMode, |
| 67 | }, |
| 68 | stdout: true, |
| 69 | stderr: true, |
| 70 | }) |
| 71 | |
| 72 | // Pipe worker stdout/stderr to main process |
| 73 | if (worker.stdout) { |
| 74 | worker.stdout.setEncoding('utf8') |
| 75 | worker.stdout.on('data', data => { |
| 76 | process.stdout.write(data) |
| 77 | }) |
| 78 | } |
| 79 | if (worker.stderr) { |
| 80 | worker.stderr.setEncoding('utf8') |
| 81 | worker.stderr.on('data', data => { |
| 82 | process.stderr.write(data) |
| 83 | }) |
| 84 | } |
| 85 | |
| 86 | worker.on('error', err => { |
| 87 | console.error(`[Main] Worker Error:`, err) |
| 88 | output.error(`Worker Error: ${err.stack}`) |
| 89 | }) |
| 90 | |
| 91 | WorkerStorage.addWorker(worker) |
| 92 | return worker |
| 93 | } |
| 94 | |
| 95 | const simplifyObject = object => { |
| 96 | return Object.keys(object) |
no test coverage detected