Skip to content

Commit 619c488

Browse files
authored
Changed Pollingcontroller method names (#1742)
## Explanation `start/stop` were a good start but are proving difficult when trying to not break existing apis with v1 controllers that use start/stop for their own polling. the interface is too different to work nicely with our merged mixin class.
1 parent 91f37e1 commit 619c488

File tree

3 files changed

+34
-34
lines changed

3 files changed

+34
-34
lines changed

packages/polling-controller/src/PollingController.test.ts

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ describe('PollingController', () => {
2727
name: 'PollingController',
2828
state: { foo: 'bar' },
2929
});
30-
controller.start('mainnet');
30+
controller.startPollingByNetworkClientId('mainnet');
3131
jest.advanceTimersByTime(TICK_TIME);
32-
controller.stopAll();
32+
controller.stopAllPolling();
3333
expect(controller.executePoll).toHaveBeenCalledTimes(1);
3434
});
3535
});
@@ -47,12 +47,12 @@ describe('PollingController', () => {
4747
name: 'PollingController',
4848
state: { foo: 'bar' },
4949
});
50-
const pollingToken = controller.start('mainnet');
50+
const pollingToken = controller.startPollingByNetworkClientId('mainnet');
5151
jest.advanceTimersByTime(TICK_TIME);
52-
controller.stop(pollingToken);
52+
controller.stopPollingByNetworkClientId(pollingToken);
5353
jest.advanceTimersByTime(TICK_TIME);
5454
expect(controller.executePoll).toHaveBeenCalledTimes(1);
55-
controller.stopAll();
55+
controller.stopAllPolling();
5656
});
5757
it('should not stop polling if called with one of multiple active polling tokens for a given networkClient', async () => {
5858
jest.useFakeTimers();
@@ -67,15 +67,15 @@ describe('PollingController', () => {
6767
name: 'PollingController',
6868
state: { foo: 'bar' },
6969
});
70-
const pollingToken1 = controller.start('mainnet');
71-
controller.start('mainnet');
70+
const pollingToken1 = controller.startPollingByNetworkClientId('mainnet');
71+
controller.startPollingByNetworkClientId('mainnet');
7272
jest.advanceTimersByTime(TICK_TIME);
7373
await Promise.resolve();
74-
controller.stop(pollingToken1);
74+
controller.stopPollingByNetworkClientId(pollingToken1);
7575
jest.advanceTimersByTime(TICK_TIME);
7676
await Promise.resolve();
7777
expect(controller.executePoll).toHaveBeenCalledTimes(2);
78-
controller.stopAll();
78+
controller.stopAllPolling();
7979
});
8080
it('should error if no pollingToken is passed', () => {
8181
jest.useFakeTimers();
@@ -90,11 +90,11 @@ describe('PollingController', () => {
9090
name: 'PollingController',
9191
state: { foo: 'bar' },
9292
});
93-
controller.start('mainnet');
93+
controller.startPollingByNetworkClientId('mainnet');
9494
expect(() => {
95-
controller.stop(undefined as unknown as any);
95+
controller.stopPollingByNetworkClientId(undefined as unknown as any);
9696
}).toThrow('pollingToken required');
97-
controller.stopAll();
97+
controller.stopAllPolling();
9898
});
9999
it('should error if no matching pollingToken is found', () => {
100100
jest.useFakeTimers();
@@ -109,11 +109,11 @@ describe('PollingController', () => {
109109
name: 'PollingController',
110110
state: { foo: 'bar' },
111111
});
112-
controller.start('mainnet');
112+
controller.startPollingByNetworkClientId('mainnet');
113113
expect(() => {
114-
controller.stop('potato');
114+
controller.stopPollingByNetworkClientId('potato');
115115
}).toThrow('pollingToken not found');
116-
controller.stopAll();
116+
controller.stopAllPolling();
117117
});
118118
});
119119
describe('poll', () => {
@@ -131,7 +131,7 @@ describe('PollingController', () => {
131131
name: 'PollingController',
132132
state: { foo: 'bar' },
133133
});
134-
controller.start('mainnet');
134+
controller.startPollingByNetworkClientId('mainnet');
135135
jest.advanceTimersByTime(TICK_TIME);
136136
await Promise.resolve();
137137
jest.advanceTimersByTime(TICK_TIME);
@@ -152,14 +152,14 @@ describe('PollingController', () => {
152152
name: 'PollingController',
153153
state: { foo: 'bar' },
154154
});
155-
controller.start('mainnet');
156-
controller.start('mainnet');
155+
controller.startPollingByNetworkClientId('mainnet');
156+
controller.startPollingByNetworkClientId('mainnet');
157157
jest.advanceTimersByTime(TICK_TIME);
158158
await Promise.resolve();
159159
jest.advanceTimersByTime(TICK_TIME);
160160
await Promise.resolve();
161161
expect(controller.executePoll).toHaveBeenCalledTimes(2);
162-
controller.stopAll();
162+
controller.stopAllPolling();
163163
});
164164
it('should publish "pollingComplete" when stop is called', async () => {
165165
jest.useFakeTimers();
@@ -177,9 +177,9 @@ describe('PollingController', () => {
177177
name,
178178
state: { foo: 'bar' },
179179
});
180-
controller.onPollingComplete('mainnet', pollingComplete);
181-
const pollingToken = controller.start('mainnet');
182-
controller.stop(pollingToken);
180+
controller.onPollingCompleteByNetworkClientId('mainnet', pollingComplete);
181+
const pollingToken = controller.startPollingByNetworkClientId('mainnet');
182+
controller.stopPollingByNetworkClientId(pollingToken);
183183
expect(pollingComplete).toHaveBeenCalledTimes(1);
184184
});
185185
it('should poll at the interval length when set via setIntervalLength', async () => {
@@ -197,7 +197,7 @@ describe('PollingController', () => {
197197
state: { foo: 'bar' },
198198
});
199199
controller.setIntervalLength(TICK_TIME * 3);
200-
controller.start('mainnet');
200+
controller.startPollingByNetworkClientId('mainnet');
201201
jest.advanceTimersByTime(TICK_TIME);
202202
await Promise.resolve();
203203
expect(controller.executePoll).not.toHaveBeenCalled();
@@ -226,8 +226,8 @@ describe('PollingController', () => {
226226
name: 'PollingController',
227227
state: { foo: 'bar' },
228228
});
229-
controller.start('mainnet');
230-
controller.start('rinkeby');
229+
controller.startPollingByNetworkClientId('mainnet');
230+
controller.startPollingByNetworkClientId('rinkeby');
231231
jest.advanceTimersByTime(TICK_TIME);
232232
await Promise.resolve();
233233
expect(controller.executePoll.mock.calls).toMatchObject([
@@ -242,7 +242,7 @@ describe('PollingController', () => {
242242
['mainnet'],
243243
['rinkeby'],
244244
]);
245-
controller.stopAll();
245+
controller.stopAllPolling();
246246
});
247247

248248
it('should poll multiple networkClientIds when setting interval length', async () => {
@@ -260,10 +260,10 @@ describe('PollingController', () => {
260260
state: { foo: 'bar' },
261261
});
262262
controller.setIntervalLength(TICK_TIME * 2);
263-
controller.start('mainnet');
263+
controller.startPollingByNetworkClientId('mainnet');
264264
jest.advanceTimersByTime(TICK_TIME);
265265
await Promise.resolve();
266-
controller.start('sepolia');
266+
controller.startPollingByNetworkClientId('sepolia');
267267
expect(controller.executePoll.mock.calls).toMatchObject([]);
268268
jest.advanceTimersByTime(TICK_TIME);
269269
await Promise.resolve();

packages/polling-controller/src/PollingController.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ function PollingControllerMixin<TBase extends Constructor>(Base: TBase) {
5151
* @param networkClientId - The networkClientId to start polling for
5252
* @returns void
5353
*/
54-
start(networkClientId: NetworkClientId) {
54+
startPollingByNetworkClientId(networkClientId: NetworkClientId) {
5555
const innerPollToken = random();
5656
if (this.#networkClientIdTokensMap.has(networkClientId)) {
5757
const set = this.#networkClientIdTokensMap.get(networkClientId);
@@ -68,10 +68,10 @@ function PollingControllerMixin<TBase extends Constructor>(Base: TBase) {
6868
/**
6969
* Stops polling for all networkClientIds
7070
*/
71-
stopAll() {
71+
stopAllPolling() {
7272
this.#networkClientIdTokensMap.forEach((tokens, _networkClientId) => {
7373
tokens.forEach((token) => {
74-
this.stop(token);
74+
this.stopPollingByNetworkClientId(token);
7575
});
7676
});
7777
}
@@ -81,7 +81,7 @@ function PollingControllerMixin<TBase extends Constructor>(Base: TBase) {
8181
*
8282
* @param pollingToken - The polling token to stop polling for
8383
*/
84-
stop(pollingToken: string) {
84+
stopPollingByNetworkClientId(pollingToken: string) {
8585
if (!pollingToken) {
8686
throw new Error('pollingToken required');
8787
}
@@ -139,7 +139,7 @@ function PollingControllerMixin<TBase extends Constructor>(Base: TBase) {
139139
* @param networkClientId - The networkClientId to listen for polling complete events
140140
* @param callback - The callback to execute when polling is complete
141141
*/
142-
onPollingComplete(
142+
onPollingCompleteByNetworkClientId(
143143
networkClientId: NetworkClientId,
144144
callback: (networkClientId: NetworkClientId) => void,
145145
) {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export { default as PollingController } from './PollingController';
1+
export { PollingController, PollingControllerV1 } from './PollingController';

0 commit comments

Comments
 (0)