diff --git a/types/sqs-consumer/index.d.ts b/types/sqs-consumer/index.d.ts
index dfc61f3933..73da1ff980 100644
--- a/types/sqs-consumer/index.d.ts
+++ b/types/sqs-consumer/index.d.ts
@@ -1,29 +1,35 @@
-// Type definitions for sqs-consumer 3.5
+// Type definitions for sqs-consumer 3.7
// Project: https://github.com/BBC/sqs-consumer
-// Definitions by: Daniel Chao , Eric Byers
+// Definitions by: Daniel Chao
+// Eric Byers
+// Ezinwa Okpoechi
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
///
import { SQS } from "aws-sdk";
-export type ConsumerDone = (error?: Error) => void;
+declare namespace Consumer {
+ export type ConsumerDone = (error?: Error) => void;
-export interface Options {
- queueUrl: string;
- handleMessage(message: SQS.Message, done: ConsumerDone): any;
- region?: string;
- attributeNames?: string[];
- messageAttributeNames?: string[];
- batchSize?: number;
- visibilityTimeout?: number;
- waitTimeSeconds?: number;
- authenticationErrorTimeout?: number;
- sqs?: SQS;
+ export interface Options {
+ queueUrl: string;
+ handleMessage(message: SQS.Message, done: ConsumerDone): any;
+ region?: string;
+ attributeNames?: string[];
+ messageAttributeNames?: string[];
+ batchSize?: number;
+ visibilityTimeout?: number;
+ waitTimeSeconds?: number;
+ authenticationErrorTimeout?: number;
+ sqs?: SQS;
+ }
}
-export interface Consumer extends NodeJS.EventEmitter {
- start(): void;
- stop(): void;
+declare class Consumer extends NodeJS.EventEmitter {
+ constructor(options: Consumer.Options);
+ start(): void;
+ stop(): void;
+ static create(options: Consumer.Options): Consumer;
}
-export function create(opts: Options): Consumer;
+export = Consumer;
diff --git a/types/sqs-consumer/sqs-consumer-tests.ts b/types/sqs-consumer/sqs-consumer-tests.ts
index b76c5116ba..f22e75b523 100644
--- a/types/sqs-consumer/sqs-consumer-tests.ts
+++ b/types/sqs-consumer/sqs-consumer-tests.ts
@@ -1,23 +1,23 @@
-import * as Consumer from "sqs-consumer";
+import Consumer = require("sqs-consumer");
import { SQS } from "aws-sdk";
const app = Consumer.create({
- queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
- handleMessage(message, done) {
+ queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
+ handleMessage(message, done) {
// do some work with `message`
- done();
- }
+ done();
+ }
});
const app2 = Consumer.create({
- queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
- handleMessage(message, done) {
- done();
- },
- region: "us-west-1",
- batchSize: 15,
- visibilityTimeout: 50,
- waitTimeSeconds: 50
+ queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
+ handleMessage(message, done) {
+ done();
+ },
+ region: "us-west-1",
+ batchSize: 15,
+ visibilityTimeout: 50,
+ waitTimeSeconds: 50
});
// Test message handler.
@@ -30,8 +30,13 @@ const app3 = Consumer.create({
handleMessage
});
+const app4 = new Consumer({
+ queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
+ handleMessage
+});
+
app.on('error', (err: any) => {
- console.log(err.message);
+ console.log(err.message);
});
app.start();
diff --git a/types/sqs-consumer/tslint.json b/types/sqs-consumer/tslint.json
index 10e16aef18..a0d5a61bd8 100644
--- a/types/sqs-consumer/tslint.json
+++ b/types/sqs-consumer/tslint.json
@@ -3,6 +3,7 @@
"rules": {
// TODOs
"ban-types": false,
- "dt-header": false
+ "dt-header": false,
+ "strict-export-declare-modifiers": false
}
}