@qbatch/sqs-consumer
Version:
Build SQS-based Node applications without the boilerplate
49 lines (48 loc) • 1.47 kB
TypeScript
import * as SQS from 'aws-sdk/clients/sqs';
import { EventEmitter } from 'events';
declare type SQSMessage = SQS.Types.Message;
export interface ConsumerOptions {
queueUrl?: string;
attributeNames?: string[];
messageAttributeNames?: string[];
stopped?: boolean;
batchSize?: number;
visibilityTimeout?: number;
waitTimeSeconds?: number;
authenticationErrorTimeout?: number;
terminateVisibilityTimeout?: boolean;
sqs?: SQS;
region?: string;
handleMessageTimeout?: number;
handleMessage(message: object): Promise<void>;
preProcessMessages(messages: SQSMessage[]): object[];
}
export declare class Consumer extends EventEmitter {
private queueUrl;
private handleMessage;
private handleMessageTimeout;
private attributeNames;
private messageAttributeNames;
private stopped;
private batchSize;
private visibilityTimeout;
private waitTimeSeconds;
private authenticationErrorTimeout;
private terminateVisibilityTimeout;
private sqs;
private preProcessMessages;
constructor(options: ConsumerOptions);
readonly isRunning: boolean;
static create(options: ConsumerOptions): Consumer;
start(): void;
stop(): void;
private handleSqsResponse;
private processMessage;
private receiveMessage;
private deleteMessage;
private executeHandler;
private terminateVisabilityTimeout;
private emitError;
private poll;
}
export {};