1/* eslint-disable node-core/require-common-first, node-core/required-modules */ 2'use strict'; 3 4if (module.parent) { 5 const { spawnSync } = require('child_process'); 6 7 function runModuleAs(filename, flags, spawnOptions, role) { 8 return spawnSync(process.execPath, 9 [...flags, __filename, role, filename], spawnOptions); 10 } 11 12 module.exports = runModuleAs; 13 return; 14} 15 16const { Worker, isMainThread, workerData } = require('worker_threads'); 17 18if (isMainThread) { 19 if (process.argv[2] === 'worker') { 20 new Worker(__filename, { 21 workerData: process.argv[3] 22 }); 23 return; 24 } 25 require(process.argv[3]); 26} else { 27 require(workerData); 28} 29