import { InjectionToken } from '@angular/core'; import { OperatorFunction } from 'rxjs'; import { filter } from 'rxjs/operators'; export const CFG = new InjectionToken('CFG'); export function eventOfType(...allowedEvents: Array): OperatorFunction { return filter((eventObject: any) => { return allowedEvents.includes(eventObject.event); }); } export enum EVENTS { TRY_REGISTER = 'TRY_REGISTER', REGISTER_ERROR = 'REGISTER_ERROR', REGISTER_COMPLETE = 'REGISTER_COMPLETE', TRY_GET_CERTIFICATE = 'TRY_GET_CERTIFICATE', TRY_SET_DEVICE_STATUS = 'TRY_SET_DEVICE_STATUS', CERTIFICATE_ERROR = 'CERTIFICATE_ERROR', SET_CERTIFICATE = 'SET_CERTIFICATE', CONNECTIVITY_TEST = 'CONNECTIVITY_TEST', CONNECTIVITY_TEST_ERROR = 'CONNECTIVITY_TEST_ERROR', SET_CERTIFICATE_ERROR = 'SET_CERTIFICATE_ERROR', INITIATE_FACTORY_RESET = 'INITIATE_FACTORY_RESET', FACTORY_RESET_ERROR = 'FACTORY_RESET_ERROR', SET_DEVICE_STATUS_FAILED = 'SET_DEVICE_STATUS_FAILED', DEVICE_VALIDATION_ERROR = 'DEVICE_VALIDATION_ERROR', CONNECTED_CLIENTS = 'CONNECTED_CLIENTS', COMPLETED = 'COMPLETED' }