@vtexlab/planner-message-bus
Version:
A Message Bus that uses AWS SNS, AWS SQS, and AWS EventBridge
22 lines (21 loc) • 2.67 kB
TypeScript
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;