1.1.7 • Published 1 month ago

usagiq v1.1.7

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
1 month ago

Usagi

!This project is still in development and is not ready for production use (kinda)!

Overview

Usagi provides a simple and flexible interface for interacting with RabbitMQ, including message publishing, listening, and retry mechanisms.

Table of Contents

Installation

To install the Usagi, use the following command:

npm install --save usagiq

# or
yarn add usagiq

# or
pnpm add usagiq

Usage

import { Usagi } from 'usagiq';

// RabbitMQ configuration
const rabbitConfig = {
  uri: 'amqp://user:pass@host:port/vhost',
  exchange: 'your_exchange_name',
  exchangeType: 'topic',
};

// Create an instance of Usagi
const amqp = new Usagi(rabbitConfig);

// Initialize the service
await amqp.initialize('your_connection_name');

// Use the service methods (publish, queue, listen, etc.)

// Close the connection when done
await amqp.close();

Configuration

  • uri: The RabbitMQ server URI.
  • exchange: The name of the RabbitMQ exchange.
  • exchangeType: The type of the exchange (e.g., 'topic').

Examples

// Example: Publish a message to a queue
const message = { data: 'Hello, RabbitMQ!' };
await amqp.publish('your_queue_name', message);

// Example: Set up a listener with retry mechanism
await amqp
  .queue('your_queue_name')
  .retry(3)
  .retryTimeout(5000)
  .listen(async (payload) => {
    // Your message processing logic goes here
    console.log('Received message:', payload);

    // Simulate an error condition
    if (Math.random() < 0.5) {
      console.log('Processing failed. Throwing an error.');
      throw new Error('Simulated error');
    }

    // Simulate successful processing
    console.log('Processing succeeded.');
    return true;
  });

Testing

To run the tests, use the following command:

npm test

License

This project is licensed under the GNU GPLv3 License.

1.1.7

1 month ago

1.1.3

3 months ago

1.1.2

5 months ago

1.1.1

5 months ago

1.1.0

6 months ago

1.0.9

6 months ago

1.0.8

6 months ago

1.0.7

6 months ago

1.0.6

6 months ago

1.0.5

6 months ago