@fabrix/spool-broadcast
Version:
Spool: broadcast for Fabrix to implement CQRS and Event Sourcing
76 lines (75 loc) • 2.52 kB
TypeScript
import { FabrixApp } from '@fabrix/fabrix';
import { FabrixGeneric, FabrixModel } from '@fabrix/fabrix/dist/common';
import { Promise } from 'bluebird';
import { BroadcastEvent } from './api/models';
import { Entry } from './Entry';
import { BroadcastAction, BroadcastOptions } from './Interface';
import { BroadcastEntity } from './BroadcastEntity';
import { Broadcast } from './Broadcast';
export declare class BroadcastDispatch extends FabrixGeneric {
event: BroadcastEvent;
options: {
[key: string]: any;
};
consistency: string;
manager: {
[key: string]: any;
};
broadcaster: Broadcast;
message: any;
isAcknowledged: boolean;
isRedelivered: boolean;
versions: number[];
retries: number;
dispatcherModel: FabrixModel;
private _id;
constructor(app: FabrixApp, { event, options, consistency, message, manager, broadcaster }: {
event: BroadcastEvent;
options: BroadcastOptions;
consistency?: string;
message?: string;
manager?: any;
broadcaster?: Broadcast;
});
id: string;
readonly name: string;
run(): Promise<(BroadcastEvent | BroadcastAction | BroadcastOptions)[]>;
broadcast(events: any): Promise<any>;
generateEvent(event_pattern: any, { object, data, metadata }?: {
object?: any;
data?: any;
metadata?: any;
}): BroadcastEvent;
generateEventMetadata(keys?: string[]): {
[key: string]: any;
};
request(req: any): Promise<any>;
ack(): Promise<(BroadcastEvent | BroadcastAction | BroadcastOptions)[]>;
nack(): Promise<(BroadcastEvent | BroadcastAction | BroadcastOptions)[]>;
reject(): Promise<(BroadcastEvent | BroadcastAction | BroadcastOptions)[]>;
interrupt(msg: any): Promise<any>;
reply(msg: any): Promise<any>;
finalize(): Promise<any>;
entries(name: string): Entry;
Sequelize(): any;
mapSeries(...args: any[]): Promise<any>;
readonly metadata: {
channel: any;
channel_session: any;
user: any;
device: any;
application: any;
causation_uuid: any;
correlation_uuid: any;
correlation_type: any;
explain: any;
ip: any;
};
}
export declare class BroadcastDispatcher extends BroadcastEntity {
private _managers;
constructor(app: FabrixApp);
newDispatcher(func: any, vals: any): BroadcastDispatch;
readonly managers: Map<string, string>;
hasManager(name: any): boolean;
}