From 7834bc54e6c90e6f9954f59cfad9352f7ea37fdb Mon Sep 17 00:00:00 2001 From: leah-1ee Date: Sun, 20 Sep 2026 15:59:50 +0900 Subject: [PATCH] typings: share AsyncWrap and HandleWrap types Add reusable AsyncWrap and HandleWrap interfaces and use them for signal_wrap and watchdog typings. This reflects the native inheritance hierarchy and exposes AsyncWrap methods that are already available at runtime. Signed-off-by: leah-1ee --- typings/internalBinding/async_wrap.d.ts | 7 +++++++ typings/internalBinding/handle_wrap.d.ts | 8 ++++++++ typings/internalBinding/signal_wrap.d.ts | 8 ++++---- typings/internalBinding/watchdog.d.ts | 8 ++++---- 4 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 typings/internalBinding/handle_wrap.d.ts diff --git a/typings/internalBinding/async_wrap.d.ts b/typings/internalBinding/async_wrap.d.ts index 0bcff6e30c6b..88659a5b39e0 100644 --- a/typings/internalBinding/async_wrap.d.ts +++ b/typings/internalBinding/async_wrap.d.ts @@ -1,5 +1,12 @@ import { owner_symbol } from './symbols'; +export interface AsyncWrap { + getAsyncId(): number; + asyncReset(resource: object, executionAsyncId?: number): void; + getAsyncContextFrameForDebuggingOnly(): unknown; + getProviderType(): number; +} + declare namespace InternalAsyncWrapBinding { interface Resource { [owner_symbol]?: PublicResource; diff --git a/typings/internalBinding/handle_wrap.d.ts b/typings/internalBinding/handle_wrap.d.ts new file mode 100644 index 000000000000..31f65e85e52f --- /dev/null +++ b/typings/internalBinding/handle_wrap.d.ts @@ -0,0 +1,8 @@ +import type { AsyncWrap } from './async_wrap'; + +export interface HandleWrap extends AsyncWrap { + close(callback?: () => void): void; + hasRef(): boolean; + ref(): void; + unref(): void; +} diff --git a/typings/internalBinding/signal_wrap.d.ts b/typings/internalBinding/signal_wrap.d.ts index 4c6473cbee22..bfcfb92f082b 100644 --- a/typings/internalBinding/signal_wrap.d.ts +++ b/typings/internalBinding/signal_wrap.d.ts @@ -1,14 +1,14 @@ +import type { HandleWrap } from './handle_wrap'; + declare namespace InternalSignalWrapBinding { class Signal { constructor(); onsignal?: (signum: number) => void; start(signum: number): number | undefined; stop(): number; - close(callback?: () => void): void; - hasRef(): boolean; - ref(): void; - unref(): void; } + + interface Signal extends HandleWrap {} } export interface SignalWrapBinding { diff --git a/typings/internalBinding/watchdog.d.ts b/typings/internalBinding/watchdog.d.ts index 917ee3b96d48..f57f90b7ea3d 100644 --- a/typings/internalBinding/watchdog.d.ts +++ b/typings/internalBinding/watchdog.d.ts @@ -1,13 +1,13 @@ +import type { HandleWrap } from './handle_wrap'; + declare namespace InternalWatchdogBinding { class TraceSigintWatchdog { constructor(); start(): void; stop(): void; - close(callback?: () => void): void; - hasRef(): boolean; - ref(): void; - unref(): void; } + + interface TraceSigintWatchdog extends HandleWrap {} } export interface WatchdogBinding {