Socket
Book a DemoInstallSign in
Socket

@qrvey/queue

Package Overview
Dependencies
Maintainers
11
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@qrvey/queue

![install size](https://packagephobia.com/badge?p=@qrvey/queue) ![coverage](https://img.shields.io/badge/unit_test_coverage-0%25-brightgreen)

latest
npmnpm
Version
0.0.3
Version published
Weekly downloads
1
-92.31%
Maintainers
11
Weekly downloads
 
Created
Source

@qrvey/function-gateway

install size coverage

The @qrvey/queue package provides a unified interface for work with AWS SQS and RabbitMQ based on the specific configurations of the service.

Installation

You can install the package using npm or yarn:

npm install @qrvey/queue

Or with yarn:

yarn add @qrvey/queue

Note: If the application does not have @aws-sdk/aws-sdk/client-sqs, @smithy/node-http-handler aand @smithy/middleware-retry it must be installed manually to work with AWS SQS and amqplib to work with RabbitMQ

Require environment variables

AWS_ACCOUNT_ID //AWS AccountId to send SQS service
AWS_DEFAULT_REGION //AWS Region for SQS service
RABBITMQ_HOST //RabbitMQ host
RABBITMQ_USER //RabbitMQ user
RABBITMQ_PASSWORD //RabbitMQ password
RABBITMQ_PORT //RabbitMQ port
PLATFORM_TYPE //Platform type (possible value CONTAINER)

Conditions for AWS SQS or RA

@qrvey/queue package can deliver message either as a AWS SQS or as a RabbitMQ, depending on certain conditions. These conditions are determined by:

  • AWS SQS:

    • If the environment variable PLATFORM_TYPE is not set or have a different value to 'CONTAINER'.
  • RabbitMQ:

    • If the environment variable PLATFORM_TYPE is set to 'CONTAINER'.

Usage Example

const { QueueService } = require('@qrvey/queue');

const queueSchema={
    name:'MY_SAMPLE_QUEUE', //name of the queue in SQS
    alias:'MY_SAMPLE_QUEUE', //name of the queue for RabbitMQ
};
const queueMessage={
    company: "Qrvey",
    name: "Jhon Doe",
};

const options = {
    headers: {
      DelaySeconds: 3,
    },
  };
try{
    const queueService = new QueueService();

    await queueService.connect();

    const res =await queueService.sendMessage(queueSchema, message, options);

    await queueService.disconnect();
    console.log("res: ", res);

}catch(error){
    console.log(error);
}


API

Class

QueueService

Functions

connect(): Promise<any>

sendMessage(queue: string, message: object, options: IFunctionMapping, options: Options.Publish): Promise<any>

  • queue: The name of the queue.
  • message: the body of the messages to be sent to the queue.
  • options: An object with additional configuration options.
  • options.headers: headers of the message
  • Returns: A promise that resolves with the result of the invoked function or rejects with an error if the invocation fails.

deleteMessage(queue: string, receiptHandle: string): Promise<any>

  • queue: The name of the queue.
  • receiptHandle:

disconnect(): Promise<any>

FAQs

Package last updated on 18 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts