• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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