summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/02_init.js
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2023-12-13 15:44:16 +0530
committerGitHub <noreply@github.com>2023-12-13 11:14:16 +0100
commit5a91a065b882215dde209baf626247e54c21a392 (patch)
tree192cb8b3b0a4037453b5fd5b2a60e4d52d4543a8 /ext/node/polyfills/02_init.js
parentbbf8f69cb979be0f36c38ae52b1588e648b3252e (diff)
fix: implement child_process IPC (#21490)
This PR implements the Node child_process IPC functionality in Deno on Unix systems. For `fd > 2` a duplex unix pipe is set up between the parent and child processes. Currently implements data passing via the channel in the JSON serialization format.
Diffstat (limited to 'ext/node/polyfills/02_init.js')
-rw-r--r--ext/node/polyfills/02_init.js8
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/node/polyfills/02_init.js b/ext/node/polyfills/02_init.js
index e3061c95d..e5a0279a5 100644
--- a/ext/node/polyfills/02_init.js
+++ b/ext/node/polyfills/02_init.js
@@ -7,15 +7,12 @@ const requireImpl = internals.requireImpl;
import { nodeGlobals } from "ext:deno_node/00_globals.js";
import "node:module";
-globalThis.nodeBootstrap = function (usesLocalNodeModulesDir, argv0) {
- initialize(usesLocalNodeModulesDir, argv0);
-};
-
let initialized = false;
function initialize(
usesLocalNodeModulesDir,
argv0,
+ ipcFd,
) {
if (initialized) {
throw Error("Node runtime already initialized");
@@ -41,6 +38,7 @@ function initialize(
// but it's the only way to get `args` and `version` and this point.
internals.__bootstrapNodeProcess(argv0, Deno.args, Deno.version);
internals.__initWorkerThreads();
+ internals.__setupChildProcessIpcChannel(ipcFd);
// `Deno[Deno.internal].requireImpl` will be unreachable after this line.
delete internals.requireImpl;
}
@@ -52,6 +50,8 @@ function loadCjsModule(moduleName, isMain, inspectBrk) {
requireImpl.Module._load(moduleName, null, { main: isMain });
}
+globalThis.nodeBootstrap = initialize;
+
internals.node = {
initialize,
loadCjsModule,