dbl-utils
Version:
Utilities for dbl, adba and others projects
60 lines (59 loc) • 2.26 kB
TypeScript
type EventCallback = (...data: any[]) => any | Function;
/**
* Class EventHandler to manage event subscriptions and dispatching.
*/
export declare class EventHandler {
private events;
private patterns;
private cache;
/**
* Construct an instance of EventHandler.
*/
constructor();
/**
* Converts a wildcard string to a regular expression.
* @param wildcardString - The wildcard string to convert.
* @returns A RegExp object.
*/
private wildcardToRegExp;
/**
* Escapes special characters in a string for use in a regular expression.
* @param string - The string to escape.
* @return The escaped string.
*/
private escapeRegExp;
/**
* Dispatches an event to all subscribed callbacks.
* @param event - The event name to dispatch.
* @param data - Data to be passed to the callback function.
* @returns A promise resolved with an array of callback responses.
*/
dispatch(event: string, ...data: any[]): Promise<any[]>;
/**
* Subscribes to an event or a pattern of events.
* @param eventString - The event name or pattern to subscribe to.
* @param callback - The callback function to execute when the event is dispatched.
* @param id - An identifier for the subscription, used for unsubscribing.
*/
subscribe(eventString: string, callback: EventCallback, id: string): void;
/**
* Unsubscribes from an event or pattern of events.
* @param eventString - The event name or pattern to unsubscribe from.
* @param id - The identifier of the subscription to remove.
*/
unsubscribe(eventString: string, id: string): void;
/**
* Remove an event or pattern from the cache based on id.
* @param event - The event name or pattern.
* @param id - The identifier of the subscription to remove from the cache.
*/
private updateCache;
/**
* Update cache by removing pattern-matching events based on id.
* @param regex - The regular expression pattern to match against.
* @param id - The identifier for the subscription to be removed from the cache.
*/
private updateCacheWithPattern;
}
declare const _default: EventHandler;
export default _default;