Skip to content

Commit fee2479

Browse files
committed
Fix typings of Listener.ts
1 parent 5ae96ac commit fee2479

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/lib/structures/Listener.ts

+7-9
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,27 @@ import {Listeners} from '../managers/ListenerManager';
44
import Logger from 'js-logger';
55
import {Util} from '../util/Util';
66

7-
type Events<WS extends boolean> = WS extends true ? WSEventType : keyof ClientEvents;
8-
9-
export interface ListenerOptions<WS extends boolean = boolean, Event extends Events<WS> = Events<WS>> {
7+
export interface ListenerOptions<WS extends boolean, Event extends WS extends false | undefined ? keyof ClientEvents : WSEventType> {
108
event: Event;
119
name: string;
1210
once?: boolean;
13-
ws?: boolean;
11+
ws?: WS;
1412
fileName?: string;
15-
run?: (...args: Event extends Events<false> ? ClientEvents[Event] : Array<any>) => any;
13+
run?: (...args: Event extends keyof ClientEvents ? ClientEvents[Event] : Array<any>) => any;
1614
}
1715

18-
export class Listener {
16+
export class Listener<WS extends boolean = boolean, Event extends WS extends false | undefined ? keyof ClientEvents : WSEventType = WS extends false | undefined ? keyof ClientEvents : WSEventType> {
1917
public client: GClient;
20-
public readonly event: string;
18+
public readonly event: Event;
2119
public readonly name: string;
2220
public readonly once?: boolean;
23-
public readonly ws?: boolean;
21+
public readonly ws?: WS;
2422
public readonly fileName?: string;
2523
public readonly run: (...args: Array<any>) => any;
2624
public owner?: string;
2725
public reloading = false;
2826

29-
public constructor(options: ListenerOptions) {
27+
public constructor(options: ListenerOptions<WS, Event>) {
3028
Object.assign(this, options);
3129

3230
Listeners.register(this);

0 commit comments

Comments
 (0)