This feature does not work when a module is imported using ECMAScript modules specification, therefore it is deprecated. Fixes: https://github.com/nodejs/modules/issues/469 PR-URL: https://github.com/nodejs/node/pull/32217 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Bradley Farias <bradley.meck@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
28 lines
684 B
JavaScript
28 lines
684 B
JavaScript
/* eslint-disable node-core/require-common-first, node-core/required-modules */
|
|
'use strict';
|
|
|
|
if (require.main !== module) {
|
|
const { spawnSync } = require('child_process');
|
|
|
|
function runModuleAs(filename, flags, spawnOptions, role) {
|
|
return spawnSync(process.execPath,
|
|
[...flags, __filename, role, filename], spawnOptions);
|
|
}
|
|
|
|
module.exports = runModuleAs;
|
|
return;
|
|
}
|
|
|
|
const { Worker, isMainThread, workerData } = require('worker_threads');
|
|
|
|
if (isMainThread) {
|
|
if (process.argv[2] === 'worker') {
|
|
new Worker(__filename, {
|
|
workerData: process.argv[3]
|
|
});
|
|
return;
|
|
}
|
|
require(process.argv[3]);
|
|
} else {
|
|
require(workerData);
|
|
}
|