Skip to content

Commit fb9ac0e

Browse files
committed
feat: change objects to maps, id to monotonically increasing
1 parent 9aab84b commit fb9ac0e

File tree

1 file changed

+9
-24
lines changed

1 file changed

+9
-24
lines changed

src/lightning-stubs/refresh/refresh.js

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
* SPDX-License-Identifier: MIT
55
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
66
*/
7-
const MAX_IDS = 2 ** 20;
8-
97
export const RefreshEventName = 'lightning__refresh';
108
export class RefreshEvent extends CustomEvent {
119
constructor() {
@@ -17,43 +15,30 @@ export class RefreshEvent extends CustomEvent {
1715
}
1816
}
1917

20-
let registeredHandlers = {};
21-
let registeredContainers = {};
22-
23-
const getRandomId = () => {
24-
let id;
25-
do {
26-
id = Math.floor(Math.random() * MAX_IDS);
27-
} while (
28-
registeredHandlers.hasOwnProperty(id.toString()) ||
29-
registeredContainers.hasOwnProperty(id.toString())
30-
);
31-
32-
return id;
33-
};
18+
const registeredHandlers = new Map();
19+
const registeredContainers = new Map();
20+
let lastAssignedId = -1;
3421

3522
export const registerRefreshHandler = jest.fn((element, handler) => {
3623
let elementToRefresh = element;
3724
let eventHandler = handler;
38-
const registerId = getRandomId();
39-
registeredHandlers[registerId.toString()] = eventHandler.bind(elementToRefresh);
4025

41-
return registerId;
26+
registeredHandlers.set(++lastAssignedId, eventHandler.bind(elementToRefresh));
27+
return lastAssignedId;
4228
});
4329

4430
export const unregisterRefreshHandler = jest.fn((id) => {
45-
delete registeredHandlers[id.toString()];
31+
registeredHandlers.delete(id);
4632
});
4733

4834
export const registerRefreshContainer = jest.fn((element, handler) => {
4935
let elementToRefresh = element;
5036
let eventHandler = handler;
51-
const registerId = getRandomId();
52-
registeredContainers[registerId.toString()] = eventHandler.bind(elementToRefresh);
5337

54-
return registerId;
38+
registeredContainers.set(++lastAssignedId, eventHandler.bind(elementToRefresh));
39+
return lastAssignedId;
5540
});
5641

5742
export const unregisterRefreshContainer = jest.fn((id) => {
58-
delete registeredContainers[id.toString()];
43+
registeredContainers.delete(id);
5944
});

0 commit comments

Comments
 (0)