Skip to content

Commit 2a4d7dc

Browse files
committed
Cache JestHook emitters
1 parent a1e3007 commit 2a4d7dc

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

packages/jest-watcher/src/JestHooks.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,17 @@ class JestHooks {
2525
shouldRunTestSuite: Array<ShouldRunTestSuite>;
2626
};
2727

28+
private _subscriber: JestHookSubscriber;
29+
private _emitter: JestHookEmitter;
30+
2831
constructor() {
2932
this._listeners = {
3033
onFileChange: [],
3134
onTestRunComplete: [],
3235
shouldRunTestSuite: [],
3336
};
34-
}
35-
36-
isUsed(hook: AvailableHooks) {
37-
return this._listeners[hook] && this._listeners[hook].length;
38-
}
3937

40-
getSubscriber(): JestHookSubscriber {
41-
return {
38+
this._subscriber = {
4239
onFileChange: fn => {
4340
this._listeners.onFileChange.push(fn);
4441
},
@@ -49,10 +46,8 @@ class JestHooks {
4946
this._listeners.shouldRunTestSuite.push(fn);
5047
},
5148
};
52-
}
5349

54-
getEmitter(): JestHookEmitter {
55-
return {
50+
this._emitter = {
5651
onFileChange: fs =>
5752
this._listeners.onFileChange.forEach(listener => listener(fs)),
5853
onTestRunComplete: results =>
@@ -70,6 +65,18 @@ class JestHooks {
7065
},
7166
};
7267
}
68+
69+
isUsed(hook: AvailableHooks) {
70+
return this._listeners[hook] && this._listeners[hook].length;
71+
}
72+
73+
getSubscriber(): Readonly<JestHookSubscriber> {
74+
return this._subscriber;
75+
}
76+
77+
getEmitter(): Readonly<JestHookEmitter> {
78+
return this._emitter;
79+
}
7380
}
7481

7582
export default JestHooks;

0 commit comments

Comments
 (0)