bitwarden-estensione-browser/libs/common/src/services/broadcaster.service.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

35 lines
817 B
TypeScript
Raw Normal View History

import {
BroadcasterService as BroadcasterServiceAbstraction,
MessageBase,
} from "../abstractions/broadcaster.service";
2019-01-22 22:12:34 +01:00
export class BroadcasterService implements BroadcasterServiceAbstraction {
subscribers: Map<string, (message: MessageBase) => void> = new Map<
string,
(message: MessageBase) => void
>();
2019-01-22 22:12:34 +01:00
send(message: MessageBase, id?: string) {
2019-01-22 22:12:34 +01:00
if (id != null) {
if (this.subscribers.has(id)) {
this.subscribers.get(id)(message);
}
return;
}
this.subscribers.forEach((value) => {
2019-01-22 22:12:34 +01:00
value(message);
2021-12-16 13:36:21 +01:00
});
}
subscribe(id: string, messageCallback: (message: MessageBase) => void) {
2019-01-22 22:12:34 +01:00
this.subscribers.set(id, messageCallback);
}
unsubscribe(id: string) {
if (this.subscribers.has(id)) {
this.subscribers.delete(id);
}
2021-12-16 13:36:21 +01:00
}
2019-01-22 22:12:34 +01:00
}