ts-sqs-consumer

1.2.12 • Public • Published

ts-sqs-consumer

Typescript based sqs consumer. Handles message transport and deletion from SQS: just add a handler function for the messages from SQS to get started.

Integrated with localstack, codeClimate, fossa.

Build Stats:

npm GitHub Workflow Status (branch) contributions welcome

Maintainability stats:

Code Climate maintainability Code Climate coverage GitHub issues

Publish stats:

npm GitHub tag (latest by date) GitHub FOSSA Status

Dependencies:

David - Dependencies David - Dev Dependencies

Table Of Contents

Background

ts-sqs-consumer allows you to start processing messages from SQS by just passing in the connection configuration options and defining what needs to be done as part of the job processing.

  • Establishes a connection to the sqs queue
  • Longpolls for messages
  • If messages are found: processes them using the processor function used
  • If the message processing is successful: the message is deleted from the queue

The library has a heavy emphasis on code quality and is integrated with the following tools:

  • Integrated with local stack to run integration tests. This ensures that the library is tested as it would be expected to be used in a live environment.
  • Code Climate: for code quality and maintainability
  • FOSSA - for license check. Verfies that dependencies used in this library do not go beyond the license that this library adheres to. A detailed link is available in the License section of the document.
  • Whitesource to scan for security vulnerabilities. Note that this does not currently cause build failures: but does get reported as an open issue.

Installation

npm install ts-sqs-consumer

Usage

import { SQSConsumer } from 'ts-sqs-consumer';
 
// Define a datatype for the message being consumed
type TestMessageType = {
  orderId: string;
  handle: string;
};
 
const tsSQSConsumer: SQSConsumer<TestMessageType> = new SQSConsumer({
    // Provide the connection options
    sqsOptions: {
      clientOptions: {
        region: 'us-east-1',
      },
      receiveMessageOptions: {
        queueUrl: 'url-of-your-queue',
        visibilityTimeout: 1800,
        waitTimeSeconds: 20,
        maxNumberOfMessages: 1,
        stopAtFirstError: false,
      },
    },
    // Define what needs to be done with each message
    jobProcessor: (async (message: TestMessageType) => {
      console.log('Got message');
      console.log(message);
      // other processing steps
    }),
  });
 
  // Start processing messages
  await tsSQSConsumer
    .processPendingJobs()
    .catch((err: Error): void => {
      throw err;
    });

License

FOSSA Status

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.2.12
    95
    • latest

Version History

Package Sidebar

Install

npm i ts-sqs-consumer

Weekly Downloads

95

Version

1.2.12

License

MIT

Unpacked Size

12.9 MB

Total Files

86

Last publish

Collaborators

  • sshivanand