UNPKG

@vtexlab/planner-message-bus

Version:

A Message Bus that uses AWS SNS, AWS SQS, and AWS EventBridge

22 lines (21 loc) 2.67 kB
import { ConsumerParams, MessageContext, ScheduleParams } from '../utils/types'; import { IEvent, IMessage } from '@vtexlab/planner-contracts/build/types/utils/types'; import { PublishCommandOutput } from '@aws-sdk/client-sns'; import { Span } from '@opentelemetry/api'; import { SendMessageCommandOutput } from '@aws-sdk/client-sqs'; import { CreateScheduleCommandOutput, DeleteScheduleCommandOutput, UpdateScheduleCommandOutput } from '@aws-sdk/client-scheduler'; export declare function publishMessage<TMessage extends IEvent>(topicName: string, message: TMessage, callback?: (output: PublishCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<string | undefined>; export declare function sendMessage<TMessage extends IMessage>(queueName: string, contentMessage: TMessage, params?: {}, callback?: (output: SendMessageCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<string | undefined>; export declare function redeliveryMessage<TMessage extends IMessage>(queueName: string, message: MessageContext<TMessage>, delaySeconds: number, params?: {}, stoppedCondition?: (startsAt: Date, currentAt: Date, attempt: number) => boolean, callback?: (output: SendMessageCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<string | undefined>; export declare namespace schedule { function send<TMessage extends IEvent>(scheduleParams: ScheduleParams<TMessage>, callback?: (output: CreateScheduleCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<CreateScheduleCommandOutput>; function get(id: string, callback?: (output: DeleteScheduleCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<{ id: string; message: any; scheduleDate: Date; topicName: string; } | undefined>; function update<TMessage extends IEvent>(scheduleParams: ScheduleParams<TMessage>, callback?: (output: UpdateScheduleCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<UpdateScheduleCommandOutput>; function remove(id: string, callback?: (output: DeleteScheduleCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<DeleteScheduleCommandOutput>; } export declare function handleConsumerMessage<TMessage extends IMessage>(params: ConsumerParams<TMessage>): import("sqs-consumer").Consumer;