UNPKG

ngx-message-bus

Version:

Messaging system for angular 11.x application. It allows communication between components and modules. Direct messages, messages by types and broadcasting.

52 lines 5.97 kB
export class Connection { constructor(hub, subscriberId) { this.hub = hub; this.subscriberId = subscriberId; } getHubName() { return this.hub.getHubName(); } getSubscriberId() { return this.subscriberId.toString(); } off(subscription) { this.hub.removeListener(this.subscriptionToListener(subscription)); } offBroadcast() { this.hub.removeBroadcastListener(this.getSubscriberId()); } on(subscription) { this.hub.addListener(this.subscriptionToListener(subscription)); } onBroadcast(callBack) { this.hub.addBroadcastListener({ subscriberId: this.subscriberId, callback: callBack, groupId: null }); } post(message) { message.publisherId = this.subscriberId; message.timeGenerated = new Date(); this.hub.post(message); } broadcast(data) { const message = { publisherId: this.subscriberId, payload: data, timeGenerated: new Date(), groupId: null, metadata: null, recipientIds: null }; this.hub.broadcast(message); } subscriptionToListener(subscription) { return { subscriberId: this.getSubscriberId(), groupId: subscription.groupId, callback: subscription.callback }; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8iLCJzb3VyY2VzIjpbInNyYy9jb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxVQUFVO0lBSW5CLFlBQVksR0FBUSxFQUFFLFlBQW9CO1FBQ3RDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELEdBQUcsQ0FBSSxZQUE2QjtRQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELEVBQUUsQ0FBSSxZQUE2QjtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdDO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUM7WUFDMUIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE9BQU8sRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLENBQUksT0FBbUI7UUFDdkIsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsU0FBUyxDQUFJLElBQU87UUFDaEIsTUFBTSxPQUFPLEdBQWM7WUFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzlCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsYUFBYSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ3pCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLElBQUk7WUFDZCxZQUFZLEVBQUUsSUFBSTtTQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLHNCQUFzQixDQUFJLFlBQTZCO1FBQzNELE9BQU87WUFDSCxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNwQyxPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU87WUFDN0IsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO1NBQ2xDLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSBcIi4vbWVzc2FnZVwiO1xuaW1wb3J0IHsgSHViIH0gZnJvbSBcIi4vaHViXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi9zdWJzY3JpcHRpb25cIjtcbmltcG9ydCB7IExpc3RlbmVyIH0gZnJvbSBcIi4vbGlzdGVuZXJcIjtcblxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb24ge1xuICAgIHByaXZhdGUgc3Vic2NyaWJlcklkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBodWI6IEh1YjtcblxuICAgIGNvbnN0cnVjdG9yKGh1YjogSHViLCBzdWJzY3JpYmVySWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmh1YiA9IGh1YjtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVySWQgPSBzdWJzY3JpYmVySWQ7XG4gICAgfVxuXG4gICAgZ2V0SHViTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5odWIuZ2V0SHViTmFtZSgpO1xuICAgIH1cblxuICAgIGdldFN1YnNjcmliZXJJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJzY3JpYmVySWQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBvZmY8VD4oc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb248VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5odWIucmVtb3ZlTGlzdGVuZXIodGhpcy5zdWJzY3JpcHRpb25Ub0xpc3RlbmVyKHN1YnNjcmlwdGlvbikpO1xuICAgIH1cblxuICAgIG9mZkJyb2FkY2FzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5odWIucmVtb3ZlQnJvYWRjYXN0TGlzdGVuZXIodGhpcy5nZXRTdWJzY3JpYmVySWQoKSk7XG4gICAgfVxuXG4gICAgb248VD4oc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb248VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5odWIuYWRkTGlzdGVuZXIodGhpcy5zdWJzY3JpcHRpb25Ub0xpc3RlbmVyKHN1YnNjcmlwdGlvbikpO1xuICAgIH1cblxuICAgIG9uQnJvYWRjYXN0KGNhbGxCYWNrOiAocGF5bG9hZDogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaHViLmFkZEJyb2FkY2FzdExpc3RlbmVyKHtcbiAgICAgICAgICAgIHN1YnNjcmliZXJJZDogdGhpcy5zdWJzY3JpYmVySWQsXG4gICAgICAgICAgICBjYWxsYmFjazogY2FsbEJhY2ssXG4gICAgICAgICAgICBncm91cElkOiBudWxsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHBvc3Q8VD4obWVzc2FnZTogTWVzc2FnZTxUPik6IHZvaWQge1xuICAgICAgICBtZXNzYWdlLnB1Ymxpc2hlcklkID0gdGhpcy5zdWJzY3JpYmVySWQ7XG4gICAgICAgIG1lc3NhZ2UudGltZUdlbmVyYXRlZCA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHRoaXMuaHViLnBvc3QobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgYnJvYWRjYXN0PFQ+KGRhdGE6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTpNZXNzYWdlPFQ+ID0ge1xuICAgICAgICAgICAgcHVibGlzaGVySWQ6IHRoaXMuc3Vic2NyaWJlcklkLFxuICAgICAgICAgICAgcGF5bG9hZDogZGF0YSxcbiAgICAgICAgICAgIHRpbWVHZW5lcmF0ZWQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICBncm91cElkOiBudWxsLFxuICAgICAgICAgICAgbWV0YWRhdGE6IG51bGwsXG4gICAgICAgICAgICByZWNpcGllbnRJZHM6IG51bGxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5odWIuYnJvYWRjYXN0KG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uVG9MaXN0ZW5lcjxUPihzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjxUPik6TGlzdGVuZXIge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3Vic2NyaWJlcklkOiB0aGlzLmdldFN1YnNjcmliZXJJZCgpLFxuICAgICAgICAgICAgZ3JvdXBJZDogc3Vic2NyaXB0aW9uLmdyb3VwSWQsXG4gICAgICAgICAgICBjYWxsYmFjazogc3Vic2NyaXB0aW9uLmNhbGxiYWNrXG4gICAgICAgIH07XG4gICAgfVxufSJdfQ==