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
JavaScript
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==