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 } }