@pandorajs/hub
Version:
pandora.js messenge hub
100 lines • 2.9 kB
TypeScript
import { MessengerClient } from '@pandorajs/messenger';
import { ObjectConsumer } from './object-proxying/ObjectConsumer';
import { HubClient } from './hub/HubClient';
export interface Location {
initialization?: boolean;
appName?: string;
processName?: string;
pid?: string;
clientId?: string;
}
export interface Selector extends Location {
objectName?: string;
objectTag?: string;
}
export declare const selectorSchema: string[];
export interface ObjectMessage extends HubMessage {
propertyName: string;
}
export interface SubscribeMessage extends HubMessage {
register: string;
}
export interface HubMessage extends MessagePackage {
action: string;
}
export interface MessagePackage {
needReply?: boolean;
broadcast?: boolean;
host?: Selector;
remote?: Selector;
data?: any;
timeout?: number;
}
export interface ReplyPackage extends MessagePackage {
success?: boolean;
error?: any;
batchReply?: Array<ReplyPackage>;
}
export interface PublishPackage extends MessagePackage {
broadcast?: null;
remote?: null;
data: {
selector: Selector;
};
}
export interface LookupPackage extends MessagePackage {
broadcast?: null;
remote?: null;
data: {
selector: Selector;
};
}
export interface ForceReplyFn {
(ReplyPackage: any): void;
}
export interface SelectedInfo {
client: MessengerClient;
selector: Selector;
}
export interface DispatchHandler {
dispatch(message: HubMessage): Promise<any> | any;
}
export interface ObjectDescription {
name: string;
tag?: string;
}
export interface Introspection {
properties: Array<{
name: string;
type: string;
}>;
methods: Array<{
type: string;
name: string;
length: number;
}>;
}
export interface ObjectProxyBehaviour {
host: {
invoke(host: any, method: string, params: any[]): Promise<any>;
getProperty(host: any, name: string): Promise<any>;
introspect(host: any): Introspection;
subscribe(hub: HubClient, objectDescription: ObjectDescription, host: any, register: string): Promise<any>;
unsubscribe(hub: HubClient, objectDescription: ObjectDescription, host: any, register: string): Promise<any>;
};
proxy: {
invoke(proxy: any, consumer: ObjectConsumer, method: string, params: any[]): Promise<any>;
getProperty(proxy: any, consumer: ObjectConsumer, name: string): Promise<any>;
subscribe(proxy: any, consumer: ObjectConsumer, register: string, fn: any): any;
unsubscribe(proxy: any, consumer: ObjectConsumer, register: string, fn?: any): any;
};
}
export interface ClientOptions {
location: Location;
logger?: any;
}
export declare type FacadeSetupOptions = ClientOptions;
export interface ConsumerExtInfo {
timeout: number;
}
//# sourceMappingURL=types.d.ts.map