UNPKG

@ashetm/ng-broadcast-channel

Version:

``@ashetm/ng-broadcast-channel`` is a library that simplify manipulation of ``BroadcastChannel`` API.

26 lines 3.52 kB
import { Observable } from "rxjs"; export class BroadcastChannelRef { get name() { return this._broadcastChannel.name; } constructor(_ngZone, _name) { this._ngZone = _ngZone; this._name = _name; this.data$ = new Observable((subscriber) => { this._broadcastChannel.onmessage = (event) => { this._ngZone.run(() => subscriber.next(event.data)); }; this._broadcastChannel.onmessageerror = (event) => { this._ngZone.run(() => subscriber.error(event.data)); }; }); this._broadcastChannel = new BroadcastChannel(_name); } close() { this._broadcastChannel.close(); } send(data) { this._broadcastChannel.postMessage(data); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0LWNoYW5uZWwucmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYnJvYWRjYXN0LWNoYW5uZWwvc3JjL2xpYi9icm9hZGNhc3QtY2hhbm5lbC5yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUc5QyxNQUFNLE9BQU8sbUJBQW1CO0lBYTlCLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFDbUIsT0FBZSxFQUNmLEtBQWE7UUFEYixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQWpCdkIsVUFBSyxHQUFrQixJQUFJLFVBQVUsQ0FBSSxDQUFDLFVBQXlCLEVBQUUsRUFBRTtZQUM5RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBc0IsRUFBRSxFQUFFO2dCQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RELENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFZRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQU87UUFDVixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nWm9uZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSBcInJ4anNcIjtcblxuXG5leHBvcnQgY2xhc3MgQnJvYWRjYXN0Q2hhbm5lbFJlZjxUPiB7XG5cbiAgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8VD4gPSBuZXcgT2JzZXJ2YWJsZTxUPigoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPikgPT4ge1xuICAgIHRoaXMuX2Jyb2FkY2FzdENoYW5uZWwub25tZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQ8VD4pID0+IHtcbiAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5uZXh0KGV2ZW50LmRhdGEpKTtcbiAgICB9O1xuICAgIHRoaXMuX2Jyb2FkY2FzdENoYW5uZWwub25tZXNzYWdlZXJyb3IgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudDxUPikgPT4ge1xuICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLmVycm9yKGV2ZW50LmRhdGEpKTtcbiAgICB9O1xuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9icm9hZGNhc3RDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Jyb2FkY2FzdENoYW5uZWwubmFtZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hbWU6IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLl9icm9hZGNhc3RDaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoX25hbWUpO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fYnJvYWRjYXN0Q2hhbm5lbC5jbG9zZSgpO1xuICB9XG5cbiAgc2VuZChkYXRhOiBUKTogdm9pZCB7XG4gICAgdGhpcy5fYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZShkYXRhKTtcbiAgfVxuXG59XG4iXX0=