child_process: add support for URL to cp.fork

PR-URL: https://github.com/nodejs/node/pull/41225
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Antoine du Hamel 2021-12-19 23:40:53 +01:00 committed by GitHub
parent 23637e9a3b
commit 81812bad7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 3 deletions

View File

@ -391,6 +391,11 @@ controller.abort();
<!-- YAML
added: v0.5.0
changes:
- version:
- REPLACEME
pr-url: https://github.com/nodejs/node/pull/41225
description: The `modulePath` parameter can be a WHATWG `URL` object using
`file:` protocol.
- version:
- v16.4.0
- v14.18.0
@ -425,7 +430,7 @@ changes:
description: The `stdio` option is supported now.
-->
* `modulePath` {string} The module to run in the child.
* `modulePath` {string|URL} The module to run in the child.
* `args` {string\[]} List of string arguments.
* `options` {Object}
* `cwd` {string|URL} Current working directory of the child process.

View File

@ -91,7 +91,7 @@ const MAX_BUFFER = 1024 * 1024;
/**
* Spawns a new Node.js process + fork.
* @param {string} modulePath
* @param {string|URL} modulePath
* @param {string[]} [args]
* @param {{
* cwd?: string;
@ -112,7 +112,7 @@ const MAX_BUFFER = 1024 * 1024;
* @returns {ChildProcess}
*/
function fork(modulePath /* , args, options */) {
validateString(modulePath, 'modulePath');
modulePath = getValidatedPath(modulePath, 'modulePath');
// Get options and args arguments.
let execArgv;

View File

@ -0,0 +1,11 @@
import { mustCall } from '../common/index.mjs';
import { fork } from 'child_process';
if (process.argv[2] === 'child') {
process.disconnect();
} else {
const child = fork(new URL(import.meta.url), ['child']);
child.on('disconnect', mustCall());
child.once('exit', mustCall());
}