UNPKG

@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
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; }