Skip to content

Commit

Permalink
fix: testEvents emitter signature
Browse files Browse the repository at this point in the history
  • Loading branch information
noomorph committed Oct 11, 2023
1 parent a63f156 commit 2e7c2cd
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
6 changes: 3 additions & 3 deletions src/types/Emitter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ export interface ReadonlyEmitter<Event extends { type: string }> {

export interface ReadonlyAsyncEmitter<Event extends { type: string }> {
on<E extends Event>(
type: E['type'],
type: E['type'] | '*',
listener: (event: E) => void | Promise<void>,
weight?: number,
): this;
once<E extends Event>(
type: E['type'],
type: E['type'] | '*',
listener: (event: E) => void | Promise<void>,
weight?: number,
): this;
off<E extends Event>(type: E['type'], listener: (event: E) => void | Promise<void>): this;
off<E extends Event>(type: E['type'] | '*', listener: (event: E) => void | Promise<void>): this;
}

export interface Emitter<Event extends { type: string }> extends ReadonlyEmitter<Event> {
Expand Down
16 changes: 12 additions & 4 deletions src/utils/emitters/SemiAsyncEmitter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,23 @@ export class SemiAsyncEmitter<Event extends { type: string }>
this.#syncEvents = new Set(syncEvents);
}

on<E extends Event>(type: E['type'], listener: (event: E) => unknown, order?: number): this {
on<E extends Event>(
type: E['type'] | '*',
listener: (event: E) => unknown,
order?: number,
): this {
return this.#invoke('on', type, listener, order);
}

once<E extends Event>(type: E['type'], listener: (event: E) => unknown, order?: number): this {
once<E extends Event>(
type: E['type'] | '*',
listener: (event: E) => unknown,
order?: number,
): this {
return this.#invoke('once', type, listener, order);
}

off<E extends Event>(type: E['type'], listener: (event: E) => unknown): this {
off<E extends Event>(type: E['type'] | '*', listener: (event: E) => unknown): this {
return this.#invoke('off', type, listener);
}

Expand All @@ -35,7 +43,7 @@ export class SemiAsyncEmitter<Event extends { type: string }>

#invoke<E extends Event>(
methodName: 'on' | 'once' | 'off',
type: E['type'],
type: E['type'] | '*',
listener: (event: E) => unknown,
order?: number,
): this {
Expand Down

0 comments on commit 2e7c2cd

Please sign in to comment.