change handlermanager to use Map to prevent garbage

This commit is contained in:
marlon-erler
2026-04-13 20:27:18 +00:00
parent d71b3893a4
commit 79f4a26f23
11 changed files with 48 additions and 49 deletions
+6 -8
View File
@@ -173,22 +173,20 @@ export function checkDoesObjectMatchSearch<T>(
export type Handler<T> = (item: T) => void;
export class HandlerManager<T> {
handlers = new Set<Handler<T>>();
handlers = new Map<string, Handler<T>>();
// manage
addHandler = (handler: Handler<T>): void => {
this.handlers.add(handler);
setHandler = (id: string, handler: Handler<T>): void => {
this.handlers.set(id, handler);
};
deleteHandler = (handler: Handler<T>): void => {
this.handlers.delete(handler);
deleteHandler = (id: string): void => {
this.handlers.delete(id);
};
// trigger
trigger = (item: T): void => {
for (const handler of this.handlers) {
handler(item);
}
[...this.handlers.values()].forEach((handler) => handler(item));
};
}