index.d.ts 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /* eslint-disable @typescript-eslint/no-extraneous-class */
  2. declare global {
  3. namespace WKUtils {
  4. interface EventEmitter {
  5. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  6. on(event: string | symbol, listener: (...args: any[]) => void): this;
  7. once(event: string | symbol, listener: (...args: any[]) => void): this;
  8. removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
  9. off(event: string | symbol, listener: (...args: any[]) => void): this;
  10. removeAllListeners(event?: string | symbol): this;
  11. setMaxListeners(n: number): this;
  12. getMaxListeners(): number;
  13. listeners(event: string | symbol): Function[];
  14. rawListeners(event: string | symbol): Function[];
  15. emit(event: string | symbol, ...args: any[]): boolean;
  16. listenerCount(event: string | symbol): number;
  17. // Added in Node 6...
  18. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  19. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  20. eventNames(): (string | symbol)[];
  21. }
  22. }
  23. }
  24. export interface EventEmitterOptions {
  25. /**
  26. * Enables automatic capturing of promise rejection.
  27. */
  28. captureRejections?: boolean;
  29. }
  30. export interface NodeEventTarget {
  31. once(event: string | symbol, listener: (...args: any[]) => void): this;
  32. }
  33. export interface DOMEventTarget {
  34. addEventListener(event: string, listener: (...args: any[]) => void, opts?: { once: boolean }): any;
  35. }
  36. export interface StaticEventEmitterOptions {
  37. signal?: AbortSignal;
  38. }
  39. interface EventEmitter extends WKUtils.EventEmitter {}
  40. export class EventEmitter {
  41. constructor(options?: EventEmitterOptions);
  42. static once(emitter: NodeEventTarget, event: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>;
  43. static once(emitter: DOMEventTarget, event: string, options?: StaticEventEmitterOptions): Promise<any[]>;
  44. static on(
  45. emitter: WKUtils.EventEmitter,
  46. event: string,
  47. options?: StaticEventEmitterOptions
  48. ): AsyncIterableIterator<any>;
  49. /** @deprecated since v4.0.0 */
  50. static listenerCount(emitter: WKUtils.EventEmitter, event: string | symbol): number;
  51. /**
  52. * Returns a list listener for a specific emitter event name.
  53. */
  54. static getEventListener(emitter: DOMEventTarget | WKUtils.EventEmitter, name: string | symbol): Function[];
  55. /**
  56. * This symbol shall be used to install a listener for only monitoring `'error'`
  57. * events. Listeners installed using this symbol are called before the regular
  58. * `'error'` listeners are called.
  59. *
  60. * Installing a listener using this symbol does not change the behavior once an
  61. * `'error'` event is emitted, therefore the process will still crash if no
  62. * regular `'error'` listener is installed.
  63. */
  64. static readonly errorMonitor: unique symbol;
  65. static readonly captureRejectionSymbol: unique symbol;
  66. /**
  67. * Sets or gets the default captureRejection value for all emitters.
  68. */
  69. // TODO: These should be described using static getter/setter pairs:
  70. static captureRejections: boolean;
  71. static defaultMaxListeners: number;
  72. }