summaryrefslogtreecommitdiff
path: root/node_modules/@tootallnate/once/dist/types.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@tootallnate/once/dist/types.d.ts')
-rw-r--r--node_modules/@tootallnate/once/dist/types.d.ts17
1 files changed, 17 insertions, 0 deletions
diff --git a/node_modules/@tootallnate/once/dist/types.d.ts b/node_modules/@tootallnate/once/dist/types.d.ts
new file mode 100644
index 0000000..58be828
--- /dev/null
+++ b/node_modules/@tootallnate/once/dist/types.d.ts
@@ -0,0 +1,17 @@
+/// <reference types="node" />
+import { EventEmitter } from 'events';
+import { OverloadedParameters } from './overloaded-parameters';
+export declare type FirstParameter<T> = T extends [infer R, ...any[]] ? R : never;
+export declare type EventListener<F, T extends string | symbol> = F extends [
+ T,
+ infer R,
+ ...any[]
+] ? R : never;
+export declare type EventParameters<Emitter extends EventEmitter> = OverloadedParameters<Emitter['on']>;
+export declare type EventNames<Emitter extends EventEmitter> = FirstParameter<EventParameters<Emitter>>;
+export declare type EventListenerParameters<Emitter extends EventEmitter, Event extends EventNames<Emitter>> = WithDefault<Parameters<EventListener<EventParameters<Emitter>, Event>>, unknown[]>;
+export declare type WithDefault<T, D> = [T] extends [never] ? D : T;
+export interface AbortSignal {
+ addEventListener: (name: string, listener: (...args: any[]) => any) => void;
+ removeEventListener: (name: string, listener: (...args: any[]) => any) => void;
+}