UNPKG

@universis/common

Version:

Universis - common directives and services

63 lines (62 loc) 2.01 kB
import { InjectionToken, Injector, Type } from '@angular/core'; import { BehaviorSubject, Subscription } from 'rxjs'; import { ConfigurationService } from '../../shared/services/configuration.service'; export declare enum ServerEventServiceStatus { Connecting = 0, Open = 1, Closed = 2 } export declare interface ServerEvent { id?: string; additionalType?: string; entitySet?: string; entityType?: string; entityAction?: string; target?: any; result?: any; status?: any; error?: any; recipient?: string; scope?: string; dateCreated?: Date; } export declare interface ServerEventSubscriber { subscribe<T>(event: T): void; } export declare let SERVER_EVENT_SUBSCRIBERS: InjectionToken<Type<ServerEventSubscriber>[]>; export declare let SERVER_EVENT_CHILD_SUBSCRIBERS: InjectionToken<Type<ServerEventSubscriber>[]>; export declare class ServerEventService { private configuration; private injector; private addSubscribers; message: BehaviorSubject<any>; error: BehaviorSubject<any>; private eventSource; private _heartbeatTimeout; private _heartbeatInterval; private activatedUser; subscribers: Map<any, Subscription>; private destroy$; constructor(configuration: ConfigurationService, injector: Injector, addSubscribers: Array<Type<ServerEventSubscriber>>); closeSubscription(): void; load(): void; /** * Adds a server event subscriber * @param token */ subscribe(token: Type<ServerEventSubscriber>): void; /** * Removes a server event subscriber * @param token */ unsubscribe(token: Type<ServerEventSubscriber>): void; protected readonly source: string; protected readonly heartbeatTimeout: number; readonly status: ServerEventServiceStatus; openAsync(): Promise<ServerEventService>; private getUserSync; open(): this; protected onMessage(ev: any): void; protected onError(ev: any): void; close(): boolean; }