From a0ce50981755d02580763bf50daf61321182e24c Mon Sep 17 00:00:00 2001 From: Jimmy Leung <43258070+hkleungai@users.noreply.github.com> Date: Tue, 13 Jan 2026 22:49:35 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#74289=20fix(node):?= =?UTF-8?q?=20add=20overloads=20for=20process.send()=20by=20@hkleungai?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/node/node-tests/process.ts | 23 +++++++++++++---------- types/node/process.d.ts | 13 +++++++++++-- types/node/v20/process.d.ts | 13 +++++++++++-- types/node/v20/test/process.ts | 23 +++++++++++++---------- types/node/v22/process.d.ts | 13 +++++++++++-- types/node/v22/test/process.ts | 23 +++++++++++++---------- types/node/v24/process.d.ts | 13 +++++++++++-- types/node/v24/test/process.ts | 23 +++++++++++++---------- 8 files changed, 96 insertions(+), 48 deletions(-) diff --git a/types/node/node-tests/process.ts b/types/node/node-tests/process.ts index 3fe48ba80c262e..9093134c45d626 100644 --- a/types/node/node-tests/process.ts +++ b/types/node/node-tests/process.ts @@ -77,16 +77,19 @@ import { fileURLToPath } from "node:url"; process.channel.unref(); } if (process.send) { - let r: boolean = process.send("aMessage"); - r = process.send({ msg: "foo" }, new net.Server()); - r = process.send({ msg: "foo" }, new net.Socket()); - r = process.send({ msg: "foo" }, new dgram.Socket()); - r = process.send({ msg: "foo" }, new net.Server(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new net.Socket(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new dgram.Socket(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new net.Server(), { keepOpen: true }, (err: Error | null) => {}); - r = process.send({ msg: "foo" }, new net.Socket(), { keepOpen: true }, (err: Error | null) => {}); - r = process.send({ msg: "foo" }, new dgram.Socket(), { keepOpen: true }, (err: Error | null) => {}); + let r: boolean; + let sendHandle = Math.random() < 0.5 + ? new net.Server() + : Math.random() < 0.5 + ? new net.Socket() + : new dgram.Socket(); + + r = process.send("aMessage"); + r = process.send({ msg: "foo" }, sendHandle); + r = process.send({ msg: "foo" }, sendHandle, { keepOpen: true }); + r = process.send({ msg: "foo" }, (err: Error | null) => {}); + r = process.send({ msg: "foo" }, sendHandle, (err: Error | null) => {}); + r = process.send({ msg: "foo" }, sendHandle, { keepOpen: true }, (err: Error | null) => {}); } if (process.disconnect) { process.disconnect(); diff --git a/types/node/process.d.ts b/types/node/process.d.ts index 5c371636613bc1..c924f935d8de7b 100644 --- a/types/node/process.d.ts +++ b/types/node/process.d.ts @@ -1908,8 +1908,17 @@ declare module "node:process" { */ send?( message: any, - sendHandle?: SendHandle, - options?: MessageOptions, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + sendHandle: SendHandle, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + sendHandle: SendHandle, + options: MessageOptions, callback?: (error: Error | null) => void, ): boolean; /** diff --git a/types/node/v20/process.d.ts b/types/node/v20/process.d.ts index b4bf98992defbe..feb9be79a75739 100644 --- a/types/node/v20/process.d.ts +++ b/types/node/v20/process.d.ts @@ -1714,8 +1714,17 @@ declare module "process" { */ send?( message: any, - sendHandle?: SendHandle, - options?: MessageOptions, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + sendHandle: SendHandle, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + sendHandle: SendHandle, + options: MessageOptions, callback?: (error: Error | null) => void, ): boolean; /** diff --git a/types/node/v20/test/process.ts b/types/node/v20/test/process.ts index 044dcaab6b0421..150561008ee05a 100644 --- a/types/node/v20/test/process.ts +++ b/types/node/v20/test/process.ts @@ -78,16 +78,19 @@ import { fileURLToPath } from "node:url"; process.channel.unref(); } if (process.send) { - let r: boolean = process.send("aMessage"); - r = process.send({ msg: "foo" }, new net.Server()); - r = process.send({ msg: "foo" }, new net.Socket()); - r = process.send({ msg: "foo" }, new dgram.Socket()); - r = process.send({ msg: "foo" }, new net.Server(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new net.Socket(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new dgram.Socket(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new net.Server(), { keepOpen: true }, (err: Error | null) => {}); - r = process.send({ msg: "foo" }, new net.Socket(), { keepOpen: true }, (err: Error | null) => {}); - r = process.send({ msg: "foo" }, new dgram.Socket(), { keepOpen: true }, (err: Error | null) => {}); + let r: boolean; + let sendHandle = Math.random() < 0.5 + ? new net.Server() + : Math.random() < 0.5 + ? new net.Socket() + : new dgram.Socket(); + + r = process.send("aMessage"); + r = process.send({ msg: "foo" }, sendHandle); + r = process.send({ msg: "foo" }, sendHandle, { keepOpen: true }); + r = process.send({ msg: "foo" }, (err: Error | null) => {}); + r = process.send({ msg: "foo" }, sendHandle, (err: Error | null) => {}); + r = process.send({ msg: "foo" }, sendHandle, { keepOpen: true }, (err: Error | null) => {}); } } diff --git a/types/node/v22/process.d.ts b/types/node/v22/process.d.ts index 0ccd90b6332c12..456239fa052575 100644 --- a/types/node/v22/process.d.ts +++ b/types/node/v22/process.d.ts @@ -1787,8 +1787,17 @@ declare module "process" { */ send?( message: any, - sendHandle?: SendHandle, - options?: MessageOptions, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + sendHandle: SendHandle, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + sendHandle: SendHandle, + options: MessageOptions, callback?: (error: Error | null) => void, ): boolean; /** diff --git a/types/node/v22/test/process.ts b/types/node/v22/test/process.ts index aa1311afe48af4..0fca87b7ff9e94 100644 --- a/types/node/v22/test/process.ts +++ b/types/node/v22/test/process.ts @@ -80,16 +80,19 @@ import { fileURLToPath } from "node:url"; process.channel.unref(); } if (process.send) { - let r: boolean = process.send("aMessage"); - r = process.send({ msg: "foo" }, new net.Server()); - r = process.send({ msg: "foo" }, new net.Socket()); - r = process.send({ msg: "foo" }, new dgram.Socket()); - r = process.send({ msg: "foo" }, new net.Server(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new net.Socket(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new dgram.Socket(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new net.Server(), { keepOpen: true }, (err: Error | null) => {}); - r = process.send({ msg: "foo" }, new net.Socket(), { keepOpen: true }, (err: Error | null) => {}); - r = process.send({ msg: "foo" }, new dgram.Socket(), { keepOpen: true }, (err: Error | null) => {}); + let r: boolean; + let sendHandle = Math.random() < 0.5 + ? new net.Server() + : Math.random() < 0.5 + ? new net.Socket() + : new dgram.Socket(); + + r = process.send("aMessage"); + r = process.send({ msg: "foo" }, sendHandle); + r = process.send({ msg: "foo" }, sendHandle, { keepOpen: true }); + r = process.send({ msg: "foo" }, (err: Error | null) => {}); + r = process.send({ msg: "foo" }, sendHandle, (err: Error | null) => {}); + r = process.send({ msg: "foo" }, sendHandle, { keepOpen: true }, (err: Error | null) => {}); } } diff --git a/types/node/v24/process.d.ts b/types/node/v24/process.d.ts index d31ea550b7b0a4..3e54911b41c69b 100644 --- a/types/node/v24/process.d.ts +++ b/types/node/v24/process.d.ts @@ -1786,8 +1786,17 @@ declare module "process" { */ send?( message: any, - sendHandle?: SendHandle, - options?: MessageOptions, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + sendHandle: SendHandle, + callback?: (error: Error | null) => void, + ): boolean; + send?( + message: any, + sendHandle: SendHandle, + options: MessageOptions, callback?: (error: Error | null) => void, ): boolean; /** diff --git a/types/node/v24/test/process.ts b/types/node/v24/test/process.ts index aa1311afe48af4..0fca87b7ff9e94 100644 --- a/types/node/v24/test/process.ts +++ b/types/node/v24/test/process.ts @@ -80,16 +80,19 @@ import { fileURLToPath } from "node:url"; process.channel.unref(); } if (process.send) { - let r: boolean = process.send("aMessage"); - r = process.send({ msg: "foo" }, new net.Server()); - r = process.send({ msg: "foo" }, new net.Socket()); - r = process.send({ msg: "foo" }, new dgram.Socket()); - r = process.send({ msg: "foo" }, new net.Server(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new net.Socket(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new dgram.Socket(), { keepOpen: true }); - r = process.send({ msg: "foo" }, new net.Server(), { keepOpen: true }, (err: Error | null) => {}); - r = process.send({ msg: "foo" }, new net.Socket(), { keepOpen: true }, (err: Error | null) => {}); - r = process.send({ msg: "foo" }, new dgram.Socket(), { keepOpen: true }, (err: Error | null) => {}); + let r: boolean; + let sendHandle = Math.random() < 0.5 + ? new net.Server() + : Math.random() < 0.5 + ? new net.Socket() + : new dgram.Socket(); + + r = process.send("aMessage"); + r = process.send({ msg: "foo" }, sendHandle); + r = process.send({ msg: "foo" }, sendHandle, { keepOpen: true }); + r = process.send({ msg: "foo" }, (err: Error | null) => {}); + r = process.send({ msg: "foo" }, sendHandle, (err: Error | null) => {}); + r = process.send({ msg: "foo" }, sendHandle, { keepOpen: true }, (err: Error | null) => {}); } }