1.0.4 • Published 1 year ago
akaba-evt-emitter v1.0.4
akaba-evt-emitter
repository
github.com
#main-declaration
export declare namespace NSAkabaEvtEmitter {
type THandleType = "on" | "once" | "off";
type THandleMethod<MAP_PARAM extends Array<any> = []> = (...args: MAP_PARAM) => void;
interface IHandleInfo<MAP_PARAM extends Array<any> = []> {
type: THandleType;
handle: THandleMethod<MAP_PARAM>;
handleId?: string | number;
}
interface NameParamsMap {
[name: string]: any[];
}
interface ITriggerLogItem<MAP_PARAM extends Array<any> = []> {
time: number;
data: MAP_PARAM;
}
}
export declare class AkabaEvtEmitter<T extends NSAkabaEvtEmitter.NameParamsMap> {
readonly id: string;
private evtMap;
private triggerLogMap;
private getHandleListOf;
protected autoTriggerIfEmitted(name: keyof T, handle: NSAkabaEvtEmitter.IHandleInfo<T[keyof T]>, triggerIfEmitted: boolean | number): this;
getHandleByMethod<K extends keyof T>(name: K, method: NSAkabaEvtEmitter.THandleMethod<T[K]>): NSAkabaEvtEmitter.IHandleInfo<T[K]> | null;
getHandleById<K extends keyof T>(name: K, id: string | number): NSAkabaEvtEmitter.IHandleInfo<T[K]> | null;
bindHandleById<K extends keyof T>(name: K, handle: NSAkabaEvtEmitter.THandleMethod<T[K]>, handleId: string | number, type?: NSAkabaEvtEmitter.THandleType, triggerIfEmitted?: boolean | number): this;
bindHandleByMethod<K extends keyof T>(name: K, handle: NSAkabaEvtEmitter.THandleMethod<T[K]>, type?: NSAkabaEvtEmitter.THandleType, handleId?: string | number, triggerIfEmitted?: boolean | number): this;
bindHandle<K extends keyof T>(name: K, handle: NSAkabaEvtEmitter.THandleMethod<T[K]>, type?: NSAkabaEvtEmitter.THandleType, handleId?: string | number, triggerIfEmitted?: boolean | number): this;
on<K extends keyof T>(name: K, handle: NSAkabaEvtEmitter.THandleMethod<T[K]>, handleId?: string | number): this;
once(name: keyof T, handle: NSAkabaEvtEmitter.THandleMethod<T[keyof T]>, handleId?: string | number): this;
off(name: keyof T, handle: NSAkabaEvtEmitter.THandleMethod<T[keyof T]> | string | number): this;
offByHandleMethod(name: keyof T, handle: NSAkabaEvtEmitter.THandleMethod<T[keyof T]>): this;
offByHandleId(name: keyof T, handleId: string | number): this;
removeOff(name: string): this;
removeAll(name?: string): this;
emit(name: keyof T, ...args: T[keyof T]): void;
}