2023-06-06 22:34:53 +02:00
|
|
|
import { BroadcasterService } from "@bitwarden/common/platform/abstractions/broadcaster.service";
|
|
|
|
import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service";
|
2018-04-25 15:00:58 +02:00
|
|
|
|
|
|
|
export class ElectronRendererMessagingService implements MessagingService {
|
|
|
|
constructor(private broadcasterService: BroadcasterService) {
|
2023-10-17 13:41:19 +02:00
|
|
|
ipc.platform.onMessage((message) => this.sendMessage(message.command, message, false));
|
2018-04-25 15:00:58 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
send(subscriber: string, arg: any = {}) {
|
2018-05-08 16:29:19 +02:00
|
|
|
this.sendMessage(subscriber, arg, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
private sendMessage(subscriber: string, arg: any = {}, toMain: boolean) {
|
2018-04-25 15:00:58 +02:00
|
|
|
const message = Object.assign({}, { command: subscriber }, arg);
|
|
|
|
this.broadcasterService.send(message);
|
2018-05-08 16:29:19 +02:00
|
|
|
if (toMain) {
|
2023-10-17 13:41:19 +02:00
|
|
|
ipc.platform.sendMessage(message);
|
2018-04-25 15:00:58 +02:00
|
|
|
}
|
2021-12-16 13:36:21 +01:00
|
|
|
}
|
2018-04-25 15:00:58 +02:00
|
|
|
}
|