mvdom
Version:
deprecated - Moved to dom-native package
34 lines (33 loc) • 1.35 kB
TypeScript
interface NsObject {
ns: string;
}
interface HubOptions {
ns?: string;
ctx?: any;
}
export declare type HubListener = (data: any, info: HubEventInfo) => void;
export declare type HubListenerByFullSelector = {
[selector: string]: HubListener;
};
export declare type HubListenerByHubNameBySelector = {
[hubName: string]: {
[selector: string]: HubListener;
};
};
export declare type HubBindings = HubListenerByFullSelector | HubListenerByHubNameBySelector | (HubListenerByFullSelector | HubListenerByHubNameBySelector)[];
export interface HubEventInfo {
topic: string;
label: string;
}
export interface Hub {
sub(topics: string, handler: HubListener, opts?: HubOptions): void;
sub(topics: string, labels: string | undefined | null, handler: HubListener, opts?: HubOptions): void;
pub(topic: string, message: any): void;
pub(topic: string, label: string, message: any): void;
unsub(ns: NsObject): void;
}
export declare function addHubEvents(target: HubBindings | undefined, source: HubBindings): (HubListenerByFullSelector | HubListenerByHubNameBySelector)[];
export declare function bindHubEvents(bindings: HubBindings, opts?: HubOptions): void;
export declare function unbindHubEvents(bindings: HubBindings, nsObject: NsObject): void;
export declare function hub(name: string): Hub;
export {};