Nuclear Pizza Machine

    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

    Install

    npm i ts-sqs-consumer

    DownloadsWeekly Downloads

    132

    Version

    1.2.12

    License

    MIT

    Unpacked Size

    12.9 MB

    Total Files

    86

    Last publish

    Collaborators

    • sshivanand