UNPKG

@getanthill/datastore

Version:

Event-Sourced Datastore

41 lines (40 loc) 1.68 kB
import type { JSONSchemaType } from 'ajv'; import type { Access, AnyObject, Telemetry } from '../typings'; import type { Route } from './broker'; import amqplib, { ConsumeMessage } from 'amqplib'; import Broker from './broker'; export default class AMQPClient extends Broker { static ERRORS: { NOT_CONNECTED: Error; }; private _connection; private _channel; private _queue; private _alreadyConnected; private _connectionId; private _connectionUrls; private _closing; private _consumerTag; private _consuming; private _consumerTags; constructor(config: any, telemetry?: Telemetry); get connection(): amqplib.Connection; get channel(): amqplib.Channel; mapRoutingKey(topic: string, schema: JSONSchemaType<AnyObject>): Route & { routingKey: string; }; connect(): Promise<AMQPClient>; init(): Promise<AMQPClient>; end(): Promise<AMQPClient>; authenticate(tokens: Access[], handler: (...args: any[]) => Promise<void>): (event: any, route: any, headers: any, opts: any) => Promise<void> | undefined; nackIfFirstSeen(message: ConsumeMessage): void; onMessage(message: ConsumeMessage | null): void; emptyQueue(): Promise<void>; publish(topic: string, payload: object, options?: object): Promise<boolean | undefined>; consume(queueConfig: { name: string; }, consumeOptions?: amqplib.Options.Consume): Promise<void>; resubscribe(): Promise<Awaited<this>[]>; subscribe(topic: string, schema: JSONSchemaType<AnyObject>, queueConfig?: any): Promise<this>; next(topic: string, timeout?: number, cb?: (opts: any) => Promise<any>): Promise<string>; }