@level-two/rabbitmq
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

LevelTwo - RabbitMQ

A message broker extension for LevelTwo. Refer to the Worker API for function definitions.

Usage

import { createLevelTwoRabbitMQ } from "@level-two/rabbitmq";

// Integrates RabbitMQ message broker into a LevelTwo instance
const levelTwo = createLevelTwoRabbitMQ({
  url: "amqp://localhost:5673/",
});

// Create a worker for getting cacheable customer objects
const worker = levelTwo.createWorker("customer", async (ids, earlyWrite) => {
  const rows = await mysql.query(
    "SELECT id, name FROM customers WHERE id IN (?)",
    [ids]
  );

  rows.forEach((row) => earlyWrite(row.id, row));
});

// Service method for getting a single customer
export async function getCustomer(id: string): Promise<Customer> {
  return await worker.get(id);
}

// Service method for getting a list of customers
export async function getCustomerList(ids: string[]): Promise<Customer[]> {
  return await worker.getMulti(ids);
}

Settings

url

Endpoint for connecting client to

broadcastChannel

Broadcast channel name for sending/receiving actions

consumeOptions

Options when adding consumer listener

consumerExchangeOptions

Options when declaring the consumer exchange

consumerQueueOptions

Options when declaring the consumer queue

publishOptions

Options when publishing a message

publisherExchangeOptions

Options when declaring the publisher exchange

remoteCache

LevelTwo remote cache extension

cacheDefaults

LevelTwo worker cache defaults

Package Sidebar

Install

npm i @level-two/rabbitmq

Weekly Downloads

2

Version

2.0.0

License

MIT

Unpacked Size

21.2 kB

Total Files

16

Last publish

Collaborators

  • codenothing