@universis/common
Version:
Universis - common directives and services
66 lines (65 loc) • 2.18 kB
TypeScript
import { InjectionToken, Injector, Type } from '@angular/core';
import { BehaviorSubject, Subscription } from 'rxjs';
import { ConfigurationService } from '../../shared/services/configuration.service';
import * as i0 from "@angular/core";
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 get source(): string;
protected get heartbeatTimeout(): number;
get status(): ServerEventServiceStatus;
openAsync(): Promise<ServerEventService>;
private getUserSync;
open(): this;
protected onMessage(ev: any): void;
protected onError(ev: any): void;
close(): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<ServerEventService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ServerEventService>;
}