Skip to content

Commit 6103e83

Browse files
authored
fix: Make sure "event" can be passed around. (#309)
1 parent d4f155a commit 6103e83

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

src/vscode/EventEmitter.test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ describe('EventEmitter', () => {
77
const emitter = new EventEmitter<string>();
88
const listener = jest.fn();
99
const listener2 = jest.fn();
10+
const event = emitter.event;
1011
emitter.event(listener);
11-
emitter.event(listener2);
12+
event(listener2);
1213
emitter.fire('foo');
1314
expect(listener).toHaveBeenCalledWith('foo');
1415
expect(listener2).toHaveBeenCalledWith('foo');

src/vscode/EventEmitter.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export class EventEmitter<T> implements vscode.EventEmitter<T> {
1212
/**
1313
* The event listeners can subscribe to.
1414
*/
15-
event(listener: (e: T) => any, thisArgs?: any, disposables?: Disposable[]): Disposable {
15+
event = (listener: (e: T) => any, thisArgs?: any, disposables?: Disposable[]): Disposable => {
1616
const fn = thisArgs ? listener.bind(thisArgs) : listener;
1717
this.#listeners.add(fn);
1818
const disposable = {
@@ -26,30 +26,30 @@ export class EventEmitter<T> implements vscode.EventEmitter<T> {
2626
}
2727

2828
return disposable;
29-
}
29+
};
3030

3131
/**
3232
* Notify all subscribers of the {@link EventEmitter.event event}. Failure
3333
* of one or more listener will not fail this function call.
3434
*
3535
* @param data The event object.
3636
*/
37-
fire(data: T): void {
37+
fire = (data: T): void => {
3838
for (const listener of this.#listeners) {
3939
try {
4040
listener(data);
4141
} catch {
4242
// ignore
4343
}
4444
}
45-
}
45+
};
4646

4747
/**
4848
* Dispose this object and free resources.
4949
*/
50-
dispose(): void {
50+
dispose = (): void => {
5151
this.#listeners.clear();
52-
}
52+
};
5353

5454
constructor() {}
5555
}

0 commit comments

Comments
 (0)