summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYusuke Tanaka <yusuktan@maguro.dev>2024-02-01 12:48:27 +0900
committerGitHub <noreply@github.com>2024-02-01 09:18:27 +0530
commit66e6ed65e9c9281a68b548ab01a2214d5a0aa1e3 (patch)
tree3a1a48da5d52ce631ce40cc9d2e3fc511861f959
parentcfb57b18555c34d3e9cde538d003984e058559bd (diff)
fix(node): add `ppid` getter for `node:process` (#22167)
This commit adds `ppid` getter for `node:process` to improve Node compatibility one step further. There is one problem though, which is that `Deno.ppid`, which `process.ppid` internally calls, is actually of type `bigint` although it's supposed to be `number`. I filed an issue for this (#22166). For the time being, explciit type conversion from `bigint` to `number` is applied to match the Node.js behavior.
-rw-r--r--cli/tests/unit_node/process_test.ts8
-rw-r--r--ext/node/polyfills/process.ts5
2 files changed, 13 insertions, 0 deletions
diff --git a/cli/tests/unit_node/process_test.ts b/cli/tests/unit_node/process_test.ts
index 23bf73864..21f873260 100644
--- a/cli/tests/unit_node/process_test.ts
+++ b/cli/tests/unit_node/process_test.ts
@@ -122,6 +122,14 @@ Deno.test({
});
Deno.test({
+ name: "process.ppid",
+ fn() {
+ assertEquals(typeof process.ppid, "number");
+ assertEquals(process.ppid, Deno.ppid);
+ },
+});
+
+Deno.test({
name: "process.on",
async fn() {
assertEquals(typeof process.on, "function");
diff --git a/ext/node/polyfills/process.ts b/ext/node/polyfills/process.ts
index 312b8e845..20399bdf9 100644
--- a/ext/node/polyfills/process.ts
+++ b/ext/node/polyfills/process.ts
@@ -558,6 +558,11 @@ class Process extends EventEmitter {
return pid;
}
+ /** https://nodejs.org/api/process.html#processppid */
+ get ppid() {
+ return Deno.ppid;
+ }
+
/** https://nodejs.org/api/process.html#process_process_platform */
get platform() {
if (!platform) {