diff --git a/sqs-consumer/sqs-consumer-tests.ts b/sqs-consumer/sqs-consumer-tests.ts new file mode 100644 index 0000000000..516aeb6adf --- /dev/null +++ b/sqs-consumer/sqs-consumer-tests.ts @@ -0,0 +1,28 @@ +/// + +import * as Consumer from "sqs-consumer"; + +var app = Consumer.create({ + queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name', + handleMessage: function (message, done) { + // do some work with `message` + done(); + } +}); + +var app2 = Consumer.create({ + queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name', + handleMessage: function(message, done){ + done(); + }, + region: "us-west-1", + batchSize: 15, + visibilityTimeout: 50, + waitTimeSeconds: 50 +}); + +app.on('error', function (err: any) { + console.log(err.message); +}); + +app.start(); diff --git a/sqs-consumer/sqs-consumer.d.ts b/sqs-consumer/sqs-consumer.d.ts new file mode 100644 index 0000000000..8c2315d083 --- /dev/null +++ b/sqs-consumer/sqs-consumer.d.ts @@ -0,0 +1,43 @@ +// Type definitions for sqs-consumer +// Project: https://github.com/BBC/sqs-consumer +// Definitions by: Daniel Chao +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare module "sqs-consumer" { + + import { SQS } from "aws-sdk"; + + module SQSConsumer { + + interface MessageHandler { + (message: SQS.Message, done: Function): any; + } + + interface ConsumerOpts { + queueUrl: string; + handleMessage: MessageHandler; + region?: string; + attributeNames?: string[]; + messageAttributeNames?: string[]; + batchSize?: number; + visibilityTimeout?: number; + waitTimeSeconds?: number; + authenticationErrorTimeout?: number; + sqs?: SQS; + } + + interface Consumer extends NodeJS.EventEmitter { + start (): void; + stop (): void; + } + + interface ConsumerFactory { + create(opts: ConsumerOpts): Consumer; + } + } + const Consumer: SQSConsumer.ConsumerFactory; + export = Consumer; + +}