@lifeintelligencegroup/ngx-lig-ari
Version:
Life Intelligence Group Artificial Intelligence
55 lines • 11.1 kB
JavaScript
import { Injectable } from '@angular/core';
import { ReplaySubject } from 'rxjs';
import * as i0 from "@angular/core";
const ServiceName = 'PubSub Service';
export class PubsubService {
constructor() {
this.events = {};
}
/**
* a void function when we don't want to use the subscription from 'RxJs';
* @param {event} event - the specific name to subscribe on - the names must be specific to those we publish.
* @param {(value: any) => void} callback - callback function
* @param {(error: any) => void} error - exception catch function
* @param {() => void} complete - complete function
*/
$sub(event, callback, error, complete) {
if (!event) {
throw new Error(`[${ServiceName}] => Subscription method must get event name.`);
}
if (this.events[event] === undefined) {
this.events[event] = new ReplaySubject();
}
if (typeof callback !== 'function') {
return this.events[event].asObservable();
}
else {
return this.events[event]
.asObservable()
.subscribe(callback, error, complete);
}
}
/**
* Base Module needed to use PubSubService.
* @param {event} event - the specific name to subscribe on
* @param {eventObject} eventObject - the optional paramter to send when raising the event
*/
$pub(event, eventObject) {
if (!event) {
throw new Error(`[${ServiceName}] => Publish method must get event name.`);
}
else if (!this.events[event]) {
return;
}
this.events[event].next(eventObject);
}
}
PubsubService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: PubsubService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
PubsubService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: PubsubService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: PubsubService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return []; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVic3ViLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlnLWFyaS9zcmMvbGliL3NlcnZpY2VzL3B1YnN1Yi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBNEIsTUFBTSxNQUFNLENBQUM7O0FBRS9ELE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDO0FBS3JDLE1BQU0sT0FBTyxhQUFhO0lBR3hCO1FBRlEsV0FBTSxHQUFHLEVBQUUsQ0FBQztJQUVMLENBQUM7SUFzRGhCOzs7Ozs7T0FNRztJQUNJLElBQUksQ0FDVCxLQUFhLEVBQ2IsUUFBK0IsRUFDL0IsS0FBNEIsRUFDNUIsUUFBcUI7UUFFckIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQ2IsSUFBSSxXQUFXLCtDQUErQyxDQUMvRCxDQUFDO1NBQ0g7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxhQUFhLEVBQU8sQ0FBQztTQUMvQztRQUVELElBQUksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMxQzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztpQkFDdEIsWUFBWSxFQUFFO2lCQUNkLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQUMsS0FBYSxFQUFFLFdBQWlCO1FBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUNiLElBQUksV0FBVywwQ0FBMEMsQ0FDMUQsQ0FBQztTQUNIO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7MEdBeEdVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuY29uc3QgU2VydmljZU5hbWUgPSAnUHViU3ViIFNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHVic3ViU2VydmljZSB7XG4gIHByaXZhdGUgZXZlbnRzID0ge307XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKiBhIHN1YnNjcmlwdGlvbiB3aGljaCByZXR1cm5zIGV2ZXJ5dGhpbmcgYXMgYW4gb2JzZXJ2YWJsZSBmcm9tIEBzZWUge1J4SnN9XG4gICAqIHRoaXMgbWV0aG9kIGRvZXMgbm90IHVzZSBldmVudE9iamVjdFxuICAgKiBAcGFyYW0ge2V2ZW50fSBldmVudCAtIHRoZSBzcGVjaWZpYyBuYW1lIHRvIHN1YnNjcmliZSBvbiAtIHRoZSBuYW1lcyBtdXN0IGJlIHNwZWNpZmljIHRvIHRob3NlIHdlIHB1Ymxpc2guXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPGFueT59IGFuIG9ic2VydmFibGUuXG4gICAqIEBzdW1tYXJ5IHJlbWVtYmVyIHRvIHVuc3Vic2NyaWJlIGluIG9uRGVzdHJveSBvZiB0aGUgY29tcG9uZW50c1xuICAgKi9cbiAgcHVibGljICRzdWIoZXZlbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogYSBzdWJzY3JpcHRpb24gd2hpY2ggcmV0dXJucyB0aGUgY2FsbGJhY2ssIGVycm9yIGFuZCBjb21wbGV0ZSBhcyBhIHN1YnNjcmlwdGlvbiBmcm9tIEBzZWUge1J4SnN9XG4gICAqIHRoaXMgbWV0aG9kIGRvZXMgbm90IHVzZSBldmVudE9iamVjdFxuICAgKiBAcGFyYW0ge2V2ZW50fSBldmVudCAtIHRoZSBzcGVjaWZpYyBuYW1lIHRvIHN1YnNjcmliZSBvbiAtIHRoZSBuYW1lcyBtdXN0IGJlIHNwZWNpZmljIHRvIHRob3NlIHdlIHB1Ymxpc2guXG4gICAqIEBwYXJhbSB7KHZhbHVlOiBhbnkpID0+IHZvaWR9IGNhbGxiYWNrIC0gY2FsbGJhY2sgbWV0aG9kIHdoaWNoIGdldHMgdGhlIHZhbHVlIGZyb20gZXZlbnRPYmplY3QuXG4gICAqIEByZXR1cm5zIHtTdWJzY3JpcHRpb259IGEgc3Vic2NyaXB0aW9uIHdoaWNoIHdlIGNhbiBsaXN0ZW4gdG8uXG4gICAqIEBzdW1tYXJ5IHJlbWVtYmVyIHRvIHVuc3Vic2NyaWJlIGluIG9uRGVzdHJveSBvZiB0aGUgY29tcG9uZW50c1xuICAgKi9cbiAgcHVibGljICRzdWIoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBhIHN1YnNjcmlwdGlvbiB3aGljaCByZXR1cm5zIHRoZSBjYWxsYmFjaywgZXJyb3IgYW5kIGNvbXBsZXRlIGFzIGEgc3Vic2NyaXB0aW9uIGZyb20gQHNlZSB7UnhKc31cbiAgICogdGhpcyBtZXRob2QgZG9lcyBub3QgdXNlIGV2ZW50T2JqZWN0XG4gICAqIEBwYXJhbSB7ZXZlbnR9IGV2ZW50IC0gdGhlIHNwZWNpZmljIG5hbWUgdG8gc3Vic2NyaWJlIG9uIC0gdGhlIG5hbWVzIG11c3QgYmUgc3BlY2lmaWMgdG8gdGhvc2Ugd2UgcHVibGlzaC5cbiAgICogQHBhcmFtIHsoZXJyb3I6IGFueSkgPT4gdm9pZH0gZXJyb3IgLSBleGNlcHRpb24gY2F0Y2ggZnVuY3Rpb25cbiAgICogQHBhcmFtIHsoKSA9PiB2b2lkfSBjb21wbGV0ZSAtIGNvbXBsZXRlIGZ1bmN0aW9uXG4gICAqIEByZXR1cm5zIHtTdWJzY3JpcHRpb259IGEgc3Vic2NyaXB0aW9uIHdoaWNoIHdlIGNhbiBsaXN0ZW4gdG8uXG4gICAqIEBzdW1tYXJ5IHJlbWVtYmVyIHRvIHVuc3Vic2NyaWJlIGluIG9uRGVzdHJveSBvZiB0aGUgY29tcG9uZW50c1xuICAgKi9cbiAgcHVibGljICRzdWIoXG4gICAgZXZlbnQ6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKHZhbHVlOiBhbnkpID0+IHZvaWQsXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIGEgc3Vic2NyaXB0aW9uIHdoaWNoIHJldHVybnMgdGhlIGNhbGxiYWNrLCBlcnJvciBhbmQgY29tcGxldGUgYXMgYSBzdWJzY3JpcHRpb24gZnJvbSBAc2VlIHtSeEpzfVxuICAgKiBAcGFyYW0ge2V2ZW50fSBldmVudCAtIHRoZSBzcGVjaWZpYyBuYW1lIHRvIHN1YnNjcmliZSBvbiAtIHRoZSBuYW1lcyBtdXN0IGJlIHNwZWNpZmljIHRvIHRob3NlIHdlIHB1Ymxpc2guXG4gICAqIEBwYXJhbSB7KHZhbHVlOiBhbnkpID0+IHZvaWR9IGNhbGxiYWNrIC0gY2FsbGJhY2sgZnVuY3Rpb25cbiAgICogQHBhcmFtIHsoZXJyb3I6IGFueSkgPT4gdm9pZH0gZXJyb3IgLSBleGNlcHRpb24gY2F0Y2ggZnVuY3Rpb25cbiAgICogQHBhcmFtIHsoKSA9PiB2b2lkfSBjb21wbGV0ZSAtIGNvbXBsZXRlIGZ1bmN0aW9uXG4gICAqIEByZXR1cm5zIHtTdWJzY3JpcHRpb259IGEgc3Vic2NyaXB0aW9uIHdoaWNoIHdlIGNhbiBsaXN0ZW4gdG8uXG4gICAqIEBzdW1tYXJ5IHJlbWVtYmVyIHRvIHVuc3Vic2NyaWJlIGluIG9uRGVzdHJveSBvZiB0aGUgY29tcG9uZW50c1xuICAgKi9cbiAgcHVibGljICRzdWIoXG4gICAgZXZlbnQ6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKHZhbHVlOiBhbnkpID0+IHZvaWQsXG4gICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB2b2lkLFxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp1bmlmaWVkLXNpZ25hdHVyZXNcbiAgICBjb21wbGV0ZTogKCkgPT4gdm9pZFxuICApOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIGEgdm9pZCBmdW5jdGlvbiB3aGVuIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSBzdWJzY3JpcHRpb24gZnJvbSAnUnhKcyc7XG4gICAqIEBwYXJhbSB7ZXZlbnR9IGV2ZW50IC0gdGhlIHNwZWNpZmljIG5hbWUgdG8gc3Vic2NyaWJlIG9uIC0gdGhlIG5hbWVzIG11c3QgYmUgc3BlY2lmaWMgdG8gdGhvc2Ugd2UgcHVibGlzaC5cbiAgICogQHBhcmFtIHsodmFsdWU6IGFueSkgPT4gdm9pZH0gY2FsbGJhY2sgLSBjYWxsYmFjayBmdW5jdGlvblxuICAgKiBAcGFyYW0geyhlcnJvcjogYW55KSA9PiB2b2lkfSBlcnJvciAtIGV4Y2VwdGlvbiBjYXRjaCBmdW5jdGlvblxuICAgKiBAcGFyYW0geygpID0+IHZvaWR9IGNvbXBsZXRlIC0gY29tcGxldGUgZnVuY3Rpb25cbiAgICovXG4gIHB1YmxpYyAkc3ViKFxuICAgIGV2ZW50OiBzdHJpbmcsXG4gICAgY2FsbGJhY2s/OiAodmFsdWU6IGFueSkgPT4gdm9pZCxcbiAgICBlcnJvcj86IChlcnJvcjogYW55KSA9PiB2b2lkLFxuICAgIGNvbXBsZXRlPzogKCkgPT4gdm9pZFxuICApIHtcbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBbJHtTZXJ2aWNlTmFtZX1dID0+IFN1YnNjcmlwdGlvbiBtZXRob2QgbXVzdCBnZXQgZXZlbnQgbmFtZS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmV2ZW50c1tldmVudF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5ldmVudHNbZXZlbnRdID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLmV2ZW50c1tldmVudF0uYXNPYnNlcnZhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmV2ZW50c1tldmVudF1cbiAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgIC5zdWJzY3JpYmUoY2FsbGJhY2ssIGVycm9yLCBjb21wbGV0ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJhc2UgTW9kdWxlIG5lZWRlZCB0byB1c2UgUHViU3ViU2VydmljZS5cbiAgICogQHBhcmFtIHtldmVudH0gZXZlbnQgLSB0aGUgc3BlY2lmaWMgbmFtZSB0byBzdWJzY3JpYmUgb25cbiAgICogQHBhcmFtIHtldmVudE9iamVjdH0gZXZlbnRPYmplY3QgLSB0aGUgb3B0aW9uYWwgcGFyYW10ZXIgdG8gc2VuZCB3aGVuIHJhaXNpbmcgdGhlIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgJHB1YihldmVudDogc3RyaW5nLCBldmVudE9iamVjdD86IGFueSkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFske1NlcnZpY2VOYW1lfV0gPT4gUHVibGlzaCBtZXRob2QgbXVzdCBnZXQgZXZlbnQgbmFtZS5gXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuZXZlbnRzW2V2ZW50XSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZXZlbnRzW2V2ZW50XS5uZXh0KGV2ZW50T2JqZWN0KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQdWJTdWJTZXJ2aWNlIHtcbiAgJHB1YihldmVudDogc3RyaW5nLCBldmVudE9iamVjdD86IGFueSk6IHZvaWQ7XG4gICRzdWIoZXZlbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PjtcbiAgJHN1YihldmVudDogc3RyaW5nLCBjYWxsYmFjazogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiBTdWJzY3JpcHRpb247XG4gICRzdWIoXG4gICAgZXZlbnQ6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKHZhbHVlOiBhbnkpID0+IHZvaWQsXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBTdWJzY3JpcHRpb247XG4gICRzdWIoXG4gICAgZXZlbnQ6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKHZhbHVlOiBhbnkpID0+IHZvaWQsXG4gICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB2b2lkLFxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp1bmlmaWVkLXNpZ25hdHVyZXNcbiAgICBjb21wbGV0ZTogKCkgPT4gdm9pZFxuICApOiBTdWJzY3JpcHRpb247XG59XG5cbmludGVyZmFjZSBJJHN1YiB7XG4gIChldmVudDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+O1xuICAoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uO1xuICAoXG4gICAgZXZlbnQ6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKHZhbHVlOiBhbnkpID0+IHZvaWQsXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBTdWJzY3JpcHRpb247XG4gIChcbiAgICBldmVudDogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiAodmFsdWU6IGFueSkgPT4gdm9pZCxcbiAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHZvaWQsXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAgIGNvbXBsZXRlOiAoKSA9PiB2b2lkXG4gICk6IFN1YnNjcmlwdGlvbjtcbn1cbiJdfQ==