@types/node 22.8.5 → 22.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. node/README.md +1 -1
  2. node/events.d.ts +35 -178
  3. node/package.json +2 -2
node/README.md CHANGED
@@ -8,7 +8,7 @@ This package contains type definitions for node (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Thu, 31 Oct 2024 05:35:24 GMT
11
+ * Last updated: Thu, 31 Oct 2024 18:02:52 GMT
12
12
  * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
13
13
 
14
14
  # Credits
node/events.d.ts CHANGED
@@ -34,7 +34,6 @@
34
34
  * ```
35
35
  * @see [source](https://github.com/nodejs/node/blob/v22.x/lib/events.js)
36
36
  */
37
-
38
37
  declare module "events" {
39
38
  import { AsyncResource, AsyncResourceOptions } from "node:async_hooks";
40
39
  // NOTE: This class is in the docs but is **not actually exported** by Node.
@@ -100,27 +99,23 @@ declare module "events" {
100
99
  */
101
100
  lowWaterMark?: number | undefined;
102
101
  }
103
- interface EventEmitter<Events extends EventMap<Events> = {}> extends NodeJS.EventEmitter<Events> {}
104
- type EventMap<Events> = Record<keyof Events, unknown[]>;
105
- type Args<Events extends EventMap<Events>, EventName> = EventName extends keyof Events ? (
106
- | Events[EventName]
107
- | (EventName extends keyof EventEmitter.EventEmitterBuiltInEventMap
108
- ? EventEmitter.EventEmitterBuiltInEventMap[EventName]
109
- : never)
110
- )
111
- : (EventName extends keyof EventEmitter.EventEmitterBuiltInEventMap
112
- ? EventEmitter.EventEmitterBuiltInEventMap[EventName]
113
- : any[]);
114
- type EventNames<Events extends EventMap<Events>> = {} extends Events ? (string | symbol)
115
- : (keyof Events | keyof EventEmitter.EventEmitterBuiltInEventMap);
116
- type Listener<Events extends EventMap<Events>, EventName> = EventName extends keyof Events ?
117
- | ((...args: Events[EventName]) => void)
118
- | (EventName extends keyof EventEmitter.EventEmitterBuiltInEventMap
119
- ? (...args: EventEmitter.EventEmitterBuiltInEventMap[EventName]) => void
120
- : never)
121
- : (EventName extends keyof EventEmitter.EventEmitterBuiltInEventMap
122
- ? (...args: EventEmitter.EventEmitterBuiltInEventMap[EventName]) => void
123
- : (...args: any[]) => void);
102
+ interface EventEmitter<T extends EventMap<T> = DefaultEventMap> extends NodeJS.EventEmitter<T> {}
103
+ type EventMap<T> = Record<keyof T, any[]> | DefaultEventMap;
104
+ type DefaultEventMap = [never];
105
+ type AnyRest = [...args: any[]];
106
+ type Args<K, T> = T extends DefaultEventMap ? AnyRest : (
107
+ K extends keyof T ? T[K] : never
108
+ );
109
+ type Key<K, T> = T extends DefaultEventMap ? string | symbol : K | keyof T;
110
+ type Key2<K, T> = T extends DefaultEventMap ? string | symbol : K & keyof T;
111
+ type Listener<K, T, F> = T extends DefaultEventMap ? F : (
112
+ K extends keyof T ? (
113
+ T[K] extends unknown[] ? (...args: T[K]) => void : never
114
+ )
115
+ : never
116
+ );
117
+ type Listener1<K, T> = Listener<K, T, (...args: any[]) => void>;
118
+ type Listener2<K, T> = Listener<K, T, Function>;
124
119
 
125
120
  /**
126
121
  * The `EventEmitter` class is defined and exposed by the `node:events` module:
@@ -135,20 +130,10 @@ declare module "events" {
135
130
  * It supports the following option:
136
131
  * @since v0.1.26
137
132
  */
138
- class EventEmitter<Events extends EventMap<Events> = {}> {
133
+ class EventEmitter<T extends EventMap<T> = DefaultEventMap> {
139
134
  constructor(options?: EventEmitterOptions);
140
135
 
141
- // This "property" is used to brand a specific instance of the EventEmitter class with its Event map, which is needed
142
- // in order to infer the map if we have a chain like `class A extends EventEmitter<{}>` (or many levels deep)
143
- // It is also marked as possibly undefined in order to allow something like `const t: NodeJS.EventEmitter<{}> = { <insert implementation here> };`
144
- readonly #internalTypeOnlyBrand?: Events;
145
-
146
- [EventEmitter.captureRejectionSymbol]?<EventName extends EventNames<Events>>(
147
- error: Error,
148
- event: EventName,
149
- ...args: Args<Events, EventName>
150
- ): void;
151
- [EventEmitter.captureRejectionSymbol]?(error: Error, event: string | symbol, ...args: any[]): void;
136
+ [EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: Key<K, T>, ...args: Args<K, T>): void;
152
137
 
153
138
  /**
154
139
  * Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given
@@ -229,11 +214,6 @@ declare module "events" {
229
214
  * ```
230
215
  * @since v11.13.0, v10.16.0
231
216
  */
232
- static once<Events extends EventMap<Events>, EventName extends EventNames<Events>>(
233
- emitter: EventEmitter<Events>,
234
- eventName: EventName,
235
- options?: StaticEventEmitterOptions,
236
- ): Promise<Args<Events, EventName>>;
237
217
  static once(
238
218
  emitter: NodeJS.EventEmitter,
239
219
  eventName: string | symbol,
@@ -320,11 +300,6 @@ declare module "events" {
320
300
  * @since v13.6.0, v12.16.0
321
301
  * @return An `AsyncIterator` that iterates `eventName` events emitted by the `emitter`
322
302
  */
323
- static on<Events extends EventMap<Events>, EventName extends EventNames<Events>>(
324
- emitter: EventEmitter<Events>,
325
- eventName: EventName,
326
- options?: StaticEventEmitterIteratorOptions,
327
- ): NodeJS.AsyncIterator<Args<Events, EventName>>;
328
303
  static on(
329
304
  emitter: NodeJS.EventEmitter,
330
305
  eventName: string | symbol,
@@ -335,27 +310,6 @@ declare module "events" {
335
310
  eventName: string,
336
311
  options?: StaticEventEmitterIteratorOptions,
337
312
  ): NodeJS.AsyncIterator<any[]>;
338
- /**
339
- * A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`.
340
- *
341
- * ```js
342
- * import { EventEmitter, listenerCount } from 'node:events';
343
- *
344
- * const myEmitter = new EventEmitter();
345
- * myEmitter.on('event', () => {});
346
- * myEmitter.on('event', () => {});
347
- * console.log(listenerCount(myEmitter, 'event'));
348
- * // Prints: 2
349
- * ```
350
- * @since v0.9.12
351
- * @deprecated Since v3.2.0 - Use `listenerCount` instead.
352
- * @param emitter The emitter to query
353
- * @param eventName The event name
354
- */
355
- static listenerCount<Events extends EventMap<Events>, EventName extends EventNames<Events>>(
356
- emitter: EventEmitter<Events>,
357
- eventName: EventName,
358
- ): number;
359
313
  /**
360
314
  * A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`.
361
315
  *
@@ -401,14 +355,7 @@ declare module "events" {
401
355
  * ```
402
356
  * @since v15.2.0, v14.17.0
403
357
  */
404
- static getEventListeners<Events extends EventMap<Events>, EventName extends EventNames<Events>>(
405
- emitter: EventEmitter<Events>,
406
- name: EventName,
407
- ): Array<Listener<Events, EventName>>;
408
- static getEventListeners(
409
- emitter: EventTarget | NodeJS.EventEmitter,
410
- name: string | symbol,
411
- ): Function[];
358
+ static getEventListeners(emitter: EventTarget | NodeJS.EventEmitter, name: string | symbol): Function[];
412
359
  /**
413
360
  * Returns the currently set max amount of listeners.
414
361
  *
@@ -638,37 +585,16 @@ declare module "events" {
638
585
  */
639
586
  readonly asyncResource: EventEmitterReferencingAsyncResource;
640
587
  }
641
-
642
- export interface EventEmitterBuiltInEventMap {
643
- newListener: [eventName: string | symbol, listener: Function];
644
- removeListener: [eventName: string | symbol, listener: Function];
645
- }
646
588
  }
647
589
  global {
648
590
  namespace NodeJS {
649
- interface EventEmitter<Events extends EventMap<Events> = {}> {
650
- [EventEmitter.captureRejectionSymbol]?<EventName extends EventNames<Events>>(
651
- error: Error,
652
- event: EventName,
653
- ...args: Args<Events, EventName>
654
- ): void;
655
- [EventEmitter.captureRejectionSymbol]?<EventName extends string | symbol>(
656
- error: Error,
657
- event: EventName,
658
- ...args: Args<Events, EventName>
659
- ): void;
591
+ interface EventEmitter<T extends EventMap<T> = DefaultEventMap> {
592
+ [EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: Key<K, T>, ...args: Args<K, T>): void;
660
593
  /**
661
594
  * Alias for `emitter.on(eventName, listener)`.
662
595
  * @since v0.1.26
663
596
  */
664
- addListener<EventName extends EventNames<Events>>(
665
- eventName: EventName,
666
- listener: Listener<Events, EventName>,
667
- ): this;
668
- addListener<EventName extends string | symbol>(
669
- eventName: EventName,
670
- listener: Listener<Events, EventName>,
671
- ): this;
597
+ addListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
672
598
  /**
673
599
  * Adds the `listener` function to the end of the listeners array for the event
674
600
  * named `eventName`. No checks are made to see if the `listener` has already
@@ -700,14 +626,7 @@ declare module "events" {
700
626
  * @param eventName The name of the event.
701
627
  * @param listener The callback function
702
628
  */
703
- on<EventName extends EventNames<Events>>(
704
- eventName: EventName,
705
- listener: Listener<Events, EventName>,
706
- ): this;
707
- on<EventName extends string | symbol>(
708
- eventName: EventName,
709
- listener: Listener<Events, EventName>,
710
- ): this;
629
+ on<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
711
630
  /**
712
631
  * Adds a **one-time** `listener` function for the event named `eventName`. The
713
632
  * next time `eventName` is triggered, this listener is removed and then invoked.
@@ -737,14 +656,7 @@ declare module "events" {
737
656
  * @param eventName The name of the event.
738
657
  * @param listener The callback function
739
658
  */
740
- once<EventName extends EventNames<Events>>(
741
- eventName: EventName,
742
- listener: Listener<Events, EventName>,
743
- ): this;
744
- once<EventName extends string | symbol>(
745
- eventName: EventName,
746
- listener: Listener<Events, EventName>,
747
- ): this;
659
+ once<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
748
660
  /**
749
661
  * Removes the specified `listener` from the listener array for the event named `eventName`.
750
662
  *
@@ -827,26 +739,12 @@ declare module "events" {
827
739
  * Returns a reference to the `EventEmitter`, so that calls can be chained.
828
740
  * @since v0.1.26
829
741
  */
830
- removeListener<EventName extends EventNames<Events>>(
831
- eventName: EventName,
832
- listener: Listener<Events, EventName>,
833
- ): this;
834
- removeListener<EventName extends string | symbol>(
835
- eventName: EventName,
836
- listener: Listener<Events, EventName>,
837
- ): this;
742
+ removeListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
838
743
  /**
839
744
  * Alias for `emitter.removeListener()`.
840
745
  * @since v10.0.0
841
746
  */
842
- off<EventName extends EventNames<Events>>(
843
- eventName: EventName,
844
- listener: Listener<Events, EventName>,
845
- ): this;
846
- off<EventName extends string | symbol>(
847
- eventName: EventName,
848
- listener: Listener<Events, EventName>,
849
- ): this;
747
+ off<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
850
748
  /**
851
749
  * Removes all listeners, or those of the specified `eventName`.
852
750
  *
@@ -857,10 +755,7 @@ declare module "events" {
857
755
  * Returns a reference to the `EventEmitter`, so that calls can be chained.
858
756
  * @since v0.1.26
859
757
  */
860
- /* eslint-disable @definitelytyped/no-unnecessary-generics */
861
- removeAllListeners<EventName extends EventNames<Events>>(eventName: EventName): this;
862
- removeAllListeners<EventName extends string | symbol>(eventName?: EventName): this;
863
- /* eslint-enable @definitelytyped/no-unnecessary-generics */
758
+ removeAllListeners(eventName?: Key<unknown, T>): this;
864
759
  /**
865
760
  * By default `EventEmitter`s will print a warning if more than `10` listeners are
866
761
  * added for a particular event. This is a useful default that helps finding
@@ -889,12 +784,7 @@ declare module "events" {
889
784
  * ```
890
785
  * @since v0.1.26
891
786
  */
892
- listeners<EventName extends EventNames<Events>>(
893
- eventName: EventName,
894
- ): Array<Listener<Events, EventName>>;
895
- listeners<EventName extends string | symbol>(
896
- eventName: EventName,
897
- ): Array<Listener<Events, EventName>>;
787
+ listeners<K>(eventName: Key<K, T>): Array<Listener2<K, T>>;
898
788
  /**
899
789
  * Returns a copy of the array of listeners for the event named `eventName`,
900
790
  * including any wrappers (such as those created by `.once()`).
@@ -925,12 +815,7 @@ declare module "events" {
925
815
  * ```
926
816
  * @since v9.4.0
927
817
  */
928
- rawListeners<EventName extends EventNames<Events>>(
929
- eventName: EventName,
930
- ): Array<Listener<Events, EventName>>;
931
- rawListeners<EventName extends string | symbol>(
932
- eventName: EventName,
933
- ): Array<Listener<Events, EventName>>;
818
+ rawListeners<K>(eventName: Key<K, T>): Array<Listener2<K, T>>;
934
819
  /**
935
820
  * Synchronously calls each of the listeners registered for the event named `eventName`, in the order they were registered, passing the supplied arguments
936
821
  * to each.
@@ -971,14 +856,7 @@ declare module "events" {
971
856
  * ```
972
857
  * @since v0.1.26
973
858
  */
974
- emit<EventName extends EventNames<Events>>(
975
- eventName: EventName,
976
- ...args: Args<Events, EventName>
977
- ): boolean;
978
- emit<EventName extends string | symbol>(
979
- eventName: EventName,
980
- ...args: Args<Events, EventName>
981
- ): boolean;
859
+ emit<K>(eventName: Key<K, T>, ...args: Args<K, T>): boolean;
982
860
  /**
983
861
  * Returns the number of listeners listening for the event named `eventName`.
984
862
  * If `listener` is provided, it will return how many times the listener is found
@@ -987,14 +865,7 @@ declare module "events" {
987
865
  * @param eventName The name of the event being listened for
988
866
  * @param listener The event handler function
989
867
  */
990
- listenerCount<EventName extends EventNames<Events>>(
991
- eventName: EventName,
992
- listener?: Listener<Events, EventName>,
993
- ): number;
994
- listenerCount<EventName extends string | symbol>(
995
- eventName: EventName,
996
- listener?: Listener<Events, EventName>,
997
- ): number;
868
+ listenerCount<K>(eventName: Key<K, T>, listener?: Listener2<K, T>): number;
998
869
  /**
999
870
  * Adds the `listener` function to the _beginning_ of the listeners array for the
1000
871
  * event named `eventName`. No checks are made to see if the `listener` has
@@ -1012,14 +883,7 @@ declare module "events" {
1012
883
  * @param eventName The name of the event.
1013
884
  * @param listener The callback function
1014
885
  */
1015
- prependListener<EventName extends EventNames<Events>>(
1016
- eventName: EventName,
1017
- listener: Listener<Events, EventName>,
1018
- ): this;
1019
- prependListener<EventName extends string | symbol>(
1020
- eventName: EventName,
1021
- listener: Listener<Events, EventName>,
1022
- ): this;
886
+ prependListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
1023
887
  /**
1024
888
  * Adds a **one-time**`listener` function for the event named `eventName` to the _beginning_ of the listeners array. The next time `eventName` is triggered, this
1025
889
  * listener is removed, and then invoked.
@@ -1035,14 +899,7 @@ declare module "events" {
1035
899
  * @param eventName The name of the event.
1036
900
  * @param listener The callback function
1037
901
  */
1038
- prependOnceListener<EventName extends EventNames<Events>>(
1039
- eventName: EventName,
1040
- listener: Listener<Events, EventName>,
1041
- ): this;
1042
- prependOnceListener<EventName extends string | symbol>(
1043
- eventName: EventName,
1044
- listener: Listener<Events, EventName>,
1045
- ): this;
902
+ prependOnceListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
1046
903
  /**
1047
904
  * Returns an array listing the events for which the emitter has registered
1048
905
  * listeners. The values in the array are strings or `Symbol`s.
@@ -1062,7 +919,7 @@ declare module "events" {
1062
919
  * ```
1063
920
  * @since v6.0.0
1064
921
  */
1065
- eventNames(): Array<(string | symbol)> & Array<EventNames<Events>>;
922
+ eventNames(): Array<(string | symbol) & Key2<unknown, T>>;
1066
923
  }
1067
924
  }
1068
925
  }
node/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "22.8.5",
3
+ "version": "22.8.6",
4
4
  "description": "TypeScript definitions for node",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -220,6 +220,6 @@
220
220
  "undici-types": "~6.19.8"
221
221
  },
222
222
  "peerDependencies": {},
223
- "typesPublisherContentHash": "7165aa45b80abb5ff9333ec6ca387d477f843670bbad567424c59b148b46fa23",
223
+ "typesPublisherContentHash": "b5e95f7873a1811a61b3409c809ee30655d0268d76d767dbe9efc27cb421459f",
224
224
  "typeScriptVersion": "4.8"
225
225
  }