@schoolbelle/common
Version:
Demo library to showcase Angular packaging format
106 lines (100 loc) • 7.32 kB
JavaScript
import { Injectable, NgModule } from '@angular/core';
import { UserService } from '@schoolbelle/common/services/user';
import { PubsubService } from '@schoolbelle/common/services/pubsub';
import { SocketService } from '@schoolbelle/common/services/socket';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class PushService {
/**
* @param {?} userService
* @param {?} pubsubService
* @param {?} socketService
*/
constructor(userService, pubsubService, socketService) {
this.userService = userService;
this.pubsubService = pubsubService;
this.socketService = socketService;
this.uid = undefined;
this.uid;
this.userService.onChange.subscribe(user => {
if (user) {
if (this.uid !== user.uid) {
if (!this.uid)
this.start();
else
this.socketService.leave('user' + this.uid);
this.uid = user.uid;
this.socketService.join('user' + user.uid);
}
}
else {
if (this.uid) {
this.socketService.leave('user' + this.uid);
this.uid = undefined;
this.end();
}
}
});
}
/**
* @return {?}
*/
start() {
this.socketService.listen('notification');
this.listenSubscription = this.socketService
.getObservable('notification')
.subscribe(data => {
console.log(data);
this.pubsubService.pub('notification', data);
});
}
/**
* @return {?}
*/
end() {
this.listenSubscription.unsubscribe();
this.listenSubscription = undefined;
this.socketService.unlisten('notification');
}
}
PushService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
PushService.ctorParameters = () => [
{ type: UserService, },
{ type: PubsubService, },
{ type: SocketService, },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class PushServiceModule {
/**
* @return {?}
*/
static forRoot() {
return {
ngModule: PushServiceModule,
providers: [PushService]
};
}
}
PushServiceModule.decorators = [
{ type: NgModule, args: [{
declarations: []
},] },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
export { PushService, PushServiceModule };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29sYmVsbGUtY29tbW9uLXNlcnZpY2VzLXB1c2guanMubWFwIiwic291cmNlcyI6WyJuZzovL0BzY2hvb2xiZWxsZS9jb21tb24vc2VydmljZXMvcHVzaC9wdXNoLnNlcnZpY2UudHMiLCJuZzovL0BzY2hvb2xiZWxsZS9jb21tb24vc2VydmljZXMvcHVzaC9wdXNoLXNlcnZpY2UubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHNjaG9vbGJlbGxlL2NvbW1vbi9zZXJ2aWNlcy91c2VyJztcbmltcG9ydCB7IFB1YnN1YlNlcnZpY2UgfSBmcm9tICdAc2Nob29sYmVsbGUvY29tbW9uL3NlcnZpY2VzL3B1YnN1Yic7XG5pbXBvcnQgeyBTb2NrZXRTZXJ2aWNlIH0gZnJvbSAnQHNjaG9vbGJlbGxlL2NvbW1vbi9zZXJ2aWNlcy9zb2NrZXQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQdXNoU2VydmljZSB7XG4gIHVpZDogYW55ID0gdW5kZWZpbmVkO1xuICBsaXN0ZW5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBwdWJzdWJTZXJ2aWNlOiBQdWJzdWJTZXJ2aWNlLFxuICAgIHB1YmxpYyBzb2NrZXRTZXJ2aWNlOiBTb2NrZXRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudWlkO1xuICAgIHRoaXMudXNlclNlcnZpY2Uub25DaGFuZ2Uuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudWlkICE9PSB1c2VyLnVpZCkge1xuICAgICAgICAgIGlmICghdGhpcy51aWQpIHRoaXMuc3RhcnQoKTtcbiAgICAgICAgICBlbHNlIHRoaXMuc29ja2V0U2VydmljZS5sZWF2ZSgndXNlcicgKyB0aGlzLnVpZCk7XG5cbiAgICAgICAgICB0aGlzLnVpZCA9IHVzZXIudWlkO1xuICAgICAgICAgIHRoaXMuc29ja2V0U2VydmljZS5qb2luKCd1c2VyJyArIHVzZXIudWlkKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMudWlkKSB7XG4gICAgICAgICAgdGhpcy5zb2NrZXRTZXJ2aWNlLmxlYXZlKCd1c2VyJyArIHRoaXMudWlkKTtcbiAgICAgICAgICB0aGlzLnVpZCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgIHRoaXMuZW5kKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIHN0YXJ0KCkge1xuICAgIHRoaXMuc29ja2V0U2VydmljZS5saXN0ZW4oJ25vdGlmaWNhdGlvbicpO1xuICAgIHRoaXMubGlzdGVuU3Vic2NyaXB0aW9uID0gdGhpcy5zb2NrZXRTZXJ2aWNlXG4gICAgICAuZ2V0T2JzZXJ2YWJsZSgnbm90aWZpY2F0aW9uJylcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgICAgICB0aGlzLnB1YnN1YlNlcnZpY2UucHViKCdub3RpZmljYXRpb24nLCBkYXRhKTtcbiAgICAgIH0pO1xuICB9XG4gIHByaXZhdGUgZW5kKCkge1xuICAgIHRoaXMubGlzdGVuU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5saXN0ZW5TdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zb2NrZXRTZXJ2aWNlLnVubGlzdGVuKCdub3RpZmljYXRpb24nKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFB1c2hTZXJ2aWNlIH0gZnJvbSAnLi9wdXNoLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFB1c2hTZXJ2aWNlTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBQdXNoU2VydmljZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1B1c2hTZXJ2aWNlXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7Ozs7O0lBV0UsWUFDUyxhQUNBLGVBQ0E7UUFGQSxnQkFBVyxHQUFYLFdBQVc7UUFDWCxrQkFBYSxHQUFiLGFBQWE7UUFDYixrQkFBYSxHQUFiLGFBQWE7bUJBTlgsU0FBUztRQVFsQixJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUk7WUFDdEMsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRzt3QkFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7O3dCQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUVqRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzVDO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzVDLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO29CQUVyQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQ1o7YUFDRjtTQUNGLENBQUMsQ0FBQztLQUNKOzs7O0lBQ08sS0FBSztRQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYTthQUN6QyxhQUFhLENBQUMsY0FBYyxDQUFDO2FBQzdCLFNBQVMsQ0FBQyxJQUFJO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDOUMsQ0FBQyxDQUFDOzs7OztJQUVDLEdBQUc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQzs7OztZQTFDL0MsVUFBVTs7OztZQUxGLFdBQVc7WUFDWCxhQUFhO1lBQ2IsYUFBYTs7Ozs7OztBQ0h0Qjs7OztJQU9FLE9BQU8sT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQztTQUN6QixDQUFDO0tBQ0g7OztZQVRGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsRUFBRTthQUNqQjs7Ozs7Ozs7Ozs7Ozs7OyJ9