Skip to content

Commit

Permalink
child_process: add support for URL to cp.fork
Browse files Browse the repository at this point in the history
PR-URL: #41225
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: James M Snell <[email protected]>
  • Loading branch information
aduh95 authored Dec 19, 2021
1 parent 23637e9 commit 81812ba
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 3 deletions.
7 changes: 6 additions & 1 deletion doc/api/child_process.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions lib/child_process.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down
11 changes: 11 additions & 0 deletions test/parallel/test-child-process-fork-url.mjs
Original file line number Diff line number Diff line change
@@ -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());
}

0 comments on commit 81812ba

Please sign in to comment.