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
This commit is contained in:
Daniel Chao
2016-05-11 22:49:18 -07:00
committed by Horiuchi_H
parent 6191520997
commit 1ec3d510e0
2 changed files with 71 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
/// <reference path="./sqs-consumer.d.ts"/>
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();

43
sqs-consumer/sqs-consumer.d.ts vendored Normal file
View File

@@ -0,0 +1,43 @@
// Type definitions for sqs-consumer
// Project: https://github.com/BBC/sqs-consumer
// Definitions by: Daniel Chao <http://dchao.co/>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
///<reference path="../aws-sdk/aws-sdk.d.ts"/>
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;
}