1.0.4 • Published 1 year ago

akaba-evt-emitter v1.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

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