@fsms/angular-pubsub
Version:
Angular 11.x implementation of the [publish subscribe](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) Pattern.
2 lines • 6.15 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs")):"function"==typeof define&&define.amd?define("@fsms/angular-pubsub",["exports","@angular/core","rxjs"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).fsms=e.fsms||{},e.fsms["angular-pubsub"]={}),e.ng.core,e.rxjs)}(this,(function(e,t,r){"use strict";var n=function(){},o=function(){function e(e){this.logger=e}return e.prototype.trace=function(e){var t=(new Date).toISOString();this.logger.log("------"),this.logger.log("[Pubsub - "+t+"]: "+e),this.logger.log("------")},e}();o.decorators=[{type:t.Injectable}],o.ctorParameters=function(){return[{type:n}]};var u=function(){function e(e){this.tracingService=e,this.map=new Map,this.subscriptions=[]}return e.prototype.subscribe=function(e){var t=this,r=e.messageType,n=e.callback,o=e.error,u=e.complete;this.hasSubject(r)||this.setNewSubject(r);var s=this.getSubject(r).asObservable().subscribe(n,o,u);this.tracingService.trace(r+" is subscribed"),this.addSubscription(s);return{unsubscribe:function(){t.tracingService.trace(r+" is unsubscribed"),s.unsubscribe()}}},e.prototype.publish=function(e){if(e){if(!this.hasSubject(e.messageType))return}else this.throwError("Publish method must get event name");var t=this.getSubject(e.messageType);this.tracingService.trace("Publishing: "+e.messageType),this.tracingService.trace(t.observers.length+" subscribers found for: "+e.messageType),t.next({message:e,context:this})},e.prototype.clearAllSubscriptions=function(){this.subscriptions.forEach((function(e){return e&&e.unsubscribe()})),this.subscriptions.length=0,this.map.clear(),this.tracingService.trace("All subscriptions are cleared")},e.prototype.addSubscription=function(e){this.subscriptions.push(e)},e.prototype.getSubject=function(e){return this.map.get(e)},e.prototype.hasSubject=function(e){return this.map.has(e)},e.prototype.setNewSubject=function(e){this.map.set(e,new r.ReplaySubject)},e.prototype.throwError=function(t){throw new Error("["+e.ServiceName+"] => "+t)},e}();u.ServiceName="PubSub Service",u.decorators=[{type:t.Injectable}],u.ctorParameters=function(){return[{type:o}]};Object.create;function s(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,u=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=u.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=u.return)&&r.call(u)}finally{if(o)throw o.error}}return s}function c(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e}Object.create;var a=function(){function e(){this.allPubsubInstances=[]}return e.prototype.addPubsub=function(e){this.allPubsubInstances.push(e)},e.prototype.addPubsubs=function(e){var t=this;e.forEach((function(e){return t.addPubsub(e)}))},e.prototype.getAllPubsubInstances=function(){return this.allPubsubInstances},e}();a.decorators=[{type:t.Injectable}],a.ctorParameters=function(){return[]};new t.InjectionToken("@fsms/pubsub Internal Root Guard");var b=new t.InjectionToken("@fsms/pubsub User Provided PubSub"),l=new t.InjectionToken("@fsms/pubsub Internal Root PubSub"),f=new t.InjectionToken("@fsms/pubsub Root PubSub"),p=new t.InjectionToken("@fsms/pubsub Internal Feature PubSub"),d=new t.InjectionToken("@fsms/pubsub Feature PubSub"),y="__@fsms/pubsub__",g=function(e,t){t.forEach((function(t){return t.forEach((function(t){return e.addPubsub(t)}))}))};g.decorators=[{type:t.NgModule,args:[{}]}],g.ctorParameters=function(){return[{type:a},{type:Array,decorators:[{type:t.Inject,args:[d]}]}]};var h=function(){function e(){}return e.prototype.error=function(e,t){e&&(t?console.error(e,t):console.error(e))},e.prototype.log=function(e,t){e&&(t?console.log(e,t):console.log(e))},e.prototype.warn=function(e,t){e&&(t?console.warn(e,t):console.warn(e))},e}();function v(e){return function(e){return Object.getPrototypeOf(e)}(e).constructor[y]}h.decorators=[{type:t.Injectable}];var m=function(e,t,r){t.addPubsubs(r),function(e,t){e.forEach((function(e){v(e).messages.forEach((function(r){t.subscribe({messageType:r.messageType,callback:e.handle.bind(e)})}))}))}(t.getAllPubsubInstances(),e),e.publish({messageType:"@fsms/pubsub/init"})};m.decorators=[{type:t.NgModule,args:[{}]}],m.ctorParameters=function(){return[{type:u},{type:a},{type:Array,decorators:[{type:t.Inject,args:[f]}]}]};var j=function(){function e(){}return e.forFeature=function(e){return void 0===e&&(e=[]),{ngModule:g,providers:[e,{provide:p,multi:!0,useValue:e},{provide:b,multi:!0,useValue:[]},{provide:d,multi:!0,useFactory:S,deps:[t.Injector,p,b]},u,a,o,{provide:n,useClass:h}]}},e.forRoot=function(e){return void 0===e&&(e=[]),{ngModule:m,providers:[e,{provide:l,useValue:[e]},u,a,{provide:b,multi:!0,useValue:[]},{provide:f,useFactory:S,deps:[t.Injector,l,b]},o,{provide:n,useClass:h}]}},e}();function S(e,t,r){var n,o,u,i,a=[];try{for(var b=s(t),l=b.next();!l.done;l=b.next()){var f=l.value;a.push.apply(a,c(f))}}catch(e){n={error:e}}finally{try{l&&!l.done&&(o=b.return)&&o.call(b)}finally{if(n)throw n.error}}try{for(var p=s(r),d=p.next();!d.done;d=p.next()){var y=d.value;a.push.apply(a,c(y))}}catch(e){u={error:e}}finally{try{d&&!d.done&&(i=p.return)&&i.call(p)}finally{if(u)throw u.error}}return P(e,a)}function P(e,t){return t.map((function(t){return e.get(t)}))}j.decorators=[{type:t.NgModule}];var I={messages:[],useTracing:!0};e.DefineMessage=function(){return function(e){return e}},e.Logger=n,e.PubsubModule=j,e.PubsubService=u,e.RegisterHandler=function(e){return function(t){var r=Object.assign(Object.assign({},I),e);Object.defineProperty(t,y,{value:r})}},e.createPubsubInstances=P,e.createPubsubs=S,e.ɵa=o,e.ɵb=g,e.ɵc=b,e.ɵd=l,e.ɵe=f,e.ɵf=p,e.ɵg=d,e.ɵh=a,e.ɵi=h,e.ɵj=m,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=fsms-angular-pubsub.umd.min.js.map