@vtexlab/planner-message-bus
Version:
A Message Bus that uses AWS SNS, AWS SQS, and AWS EventBridge
33 lines (32 loc) • 961 B
TypeScript
import { Message } from '@aws-sdk/client-sqs';
import { Span } from '@opentelemetry/api';
import { IMessage } from '@vtexlab/planner-contracts/build/types/utils/types';
export interface MessageContext<TMessage extends IMessage> extends Message {
Content?: TMessage;
}
export type TagsResourceInput = {
Key: string;
Value: string;
};
export declare class ConsumerParams<TMessage extends IMessage> {
endpoint: string;
handle: (message: MessageContext<TMessage>, traceSpan: Span | undefined) => Promise<void>;
maxRetryCount: number;
delaySeconds: number;
batchSize: number;
}
export type ScheduleParams<TMessage> = {
id: string;
message: TMessage;
scheduleDate: Date;
topicName: string;
};
export interface Config {
region: string;
account: string;
credentials: {
accessKeyId: string;
secretAccessKey: string;
};
environment: 'local' | 'development' | 'staging' | 'production';
}