1 | import { PubSubEngine } from 'graphql-subscriptions/dist/pubsub-engine';
|
2 | import { IRabbitMqConnectionConfig } from 'rabbitmq-pub-sub';
|
3 | import * as Logger from 'bunyan';
|
4 | export interface PubSubRabbitMQBusOptions {
|
5 | config?: IRabbitMqConnectionConfig;
|
6 | connectionListener?: (err: Error) => void;
|
7 | triggerTransform?: TriggerTransform;
|
8 | logger?: Logger;
|
9 | }
|
10 | export declare class AmqpPubSub implements PubSubEngine {
|
11 | private consumer;
|
12 | private producer;
|
13 | private subscriptionMap;
|
14 | private subsRefsMap;
|
15 | private currentSubscriptionId;
|
16 | private triggerTransform;
|
17 | private unsubscribeChannel;
|
18 | private logger;
|
19 | constructor(options?: PubSubRabbitMQBusOptions);
|
20 | publish(trigger: string, payload: any): Promise<void>;
|
21 | subscribe(trigger: string, onMessage: Function, options?: Object): Promise<number>;
|
22 | unsubscribe(subId: number): void;
|
23 | asyncIterator<T>(triggers: string | string[]): AsyncIterator<T>;
|
24 | private onMessage;
|
25 | }
|
26 | export declare type Path = Array<string | number>;
|
27 | export declare type Trigger = string | Path;
|
28 | export declare type TriggerTransform = (trigger: Trigger, channelOptions?: Object) => string;
|