UNPKG

1.16 kBTypeScriptView Raw
1import { PubSubEngine } from 'graphql-subscriptions/dist/pubsub-engine';
2import { IRabbitMqConnectionConfig } from 'rabbitmq-pub-sub';
3import * as Logger from 'bunyan';
4export interface PubSubRabbitMQBusOptions {
5 config?: IRabbitMqConnectionConfig;
6 connectionListener?: (err: Error) => void;
7 triggerTransform?: TriggerTransform;
8 logger?: Logger;
9}
10export 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}
26export declare type Path = Array<string | number>;
27export declare type Trigger = string | Path;
28export declare type TriggerTransform = (trigger: Trigger, channelOptions?: Object) => string;