ngx-actioncable
Version:
Library for real-time communication over websockets with Rails ActionCable.
15 lines • 2.09 kB
JavaScript
import { map, filter } from 'rxjs/operators';
import { Subject } from 'rxjs';
export class NgxActionCableBroadcaster {
constructor() {
this._eventBus = new Subject();
}
broadcast(key, data) {
this._eventBus.next({ key, data });
}
on(key) {
return this._eventBus.asObservable()
.pipe(filter(event => event.key === key), map(event => event.data));
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWFjdGlvbi1jYWJsZS1icm9hZGNhc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZ3gtYWN0aW9uLWNhYmxlL25neC1hY3Rpb24tY2FibGUtYnJvYWRjYXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTzNDLE1BQU0sT0FBTyx5QkFBeUI7SUFBdEM7UUFDVSxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7SUFhcEQsQ0FBQztJQVhDLFNBQVMsQ0FBQyxHQUFRLEVBQUUsSUFBVTtRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxFQUFFLENBQUksR0FBUTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUU7YUFDakMsSUFBSSxDQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQ2xDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDNUIsQ0FBQztJQUNOLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbnRlcmZhY2UgQnJvYWRjYXN0RXZlbnQge1xuICBrZXk6IGFueTtcbiAgZGF0YT86IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIE5neEFjdGlvbkNhYmxlQnJvYWRjYXN0ZXIge1xuICBwcml2YXRlIF9ldmVudEJ1cyA9IG5ldyBTdWJqZWN0PEJyb2FkY2FzdEV2ZW50PigpO1xuXG4gIGJyb2FkY2FzdChrZXk6IGFueSwgZGF0YT86IGFueSkge1xuICAgIHRoaXMuX2V2ZW50QnVzLm5leHQoe2tleSwgZGF0YX0pO1xuICB9XG5cbiAgb248VD4oa2V5OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRCdXMuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQua2V5ID09PSBrZXkpLFxuICAgICAgICBtYXAoZXZlbnQgPT4gPFQ+ZXZlbnQuZGF0YSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==