@versatiledatakit/shared
Version:
Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.
63 lines (62 loc) • 2.12 kB
TypeScript
import { Expression } from '../../../../common';
import { SystemEvent } from '../../event';
import { SystemEventHandlerFindByRef, SystemEventHandlerRecord, SystemEventHandlerRef } from '../models';
/**
* ** Registry for Events Handlers.
*/
export declare class SystemEventHandlerRegistry {
/**
* ** Returns Singleton instance.
*/
static get instance(): SystemEventHandlerRegistry;
private static _instance;
private readonly handlers;
/**
* ** Constructor.
*
* - Private constructor to make it Singleton.
*/
private constructor();
/**
* ** Register Handler for SystemEvent/s.
*/
static register<T>(knownEvents: SystemEvent | SystemEvent[], handlerRef: SystemEventHandlerRef, handlerClassInstance: T, handlerFilterExpression?: Expression): boolean;
/**
* ** Unregister Handler from registry.
*
* - It should be done in ngOnDestroy() method in Services/Components to avoid potential memory leaks.
*/
static unregister(knownEvents: SystemEvent | SystemEvent[], handlerRef: SystemEventHandlerRef): boolean;
/**
* ** Find Handler by reference looking through the Registry.
*/
static findHandlerByReference(eventId: SystemEvent, handlerRef: SystemEventHandlerRef, handlerClassInstance?: any): SystemEventHandlerFindByRef;
/**
* ** Prepare array of handlers for execution of post or send.
*/
static getPreparedArrayOfHandlers(eventId: SystemEvent, reversed?: boolean): SystemEventHandlerRecord[];
private register;
private unregister;
private findHandlerByReference;
private getPreparedArrayOfHandlers;
/**
* ** Generic abstraction for Register and Unregister handlers.
*/
private execute;
/**
* ** Evaluate Handler register.
*/
private executeRegister;
/**
* ** Evaluate Handler unregister.
*/
private executeUnregister;
/**
* ** Prepares Event names in Array of strings format.
*/
private prepareEventNames;
/**
* ** Returns special Handlers.
*/
private getSpecialHandlers;
}