From 1ec3d510e0c4d7c50e708ca7cb0765c7e06fa2ed Mon Sep 17 00:00:00 2001 From: Daniel Chao Date: Wed, 11 May 2016 22:49:18 -0700 Subject: [PATCH] Add sqs-consumer typings (#9277) * add sqs-consumer typings * add explicit any * use site url * Rename sqs-consumer-test.ts to sqs-consumer-tests.ts --- sqs-consumer/sqs-consumer-tests.ts | 28 +++++++++++++++++++ sqs-consumer/sqs-consumer.d.ts | 43 ++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 sqs-consumer/sqs-consumer-tests.ts create mode 100644 sqs-consumer/sqs-consumer.d.ts 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; + +}