0.1.4 • Published 6 months ago

@resilientmq/types__core v0.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

@resilientmq/types__core

TypeScript definitions for the @resilientmq/core messaging and resilience system.

Table of Contents

Installation

This is a TypeScript declaration-only package available via the npm registry.

Before installing, ensure you have a package.json set up with:

npm init -y

Then install this types package:

npm install @types/resilientmq__core --save-dev

Purpose

This package provides strict type definitions for the @resilientmq/core system, allowing strong typing for resilience-focused event processing with RabbitMQ.

Examples

EventMessage

import type { EventMessage, EventConsumeStatus } from '@types/resilientmq__core';

const event: EventMessage<{ userId: string }> = {
  id: 'evt-123',
  messageId: 'msg-123',
  type: 'user.created',
  payload: { userId: 'abc' },
  status: EventConsumeStatus.RECEIVED,
};

EventStore Interface

import type { EventStore, EventConsumeStatus, EventMessage } from '@types/resilientmq__core';

const store: EventStore = {
  saveEvent: async (event: EventMessage) => { /* persist */ },
  updateEventStatus: async (id, status: EventConsumeStatus) => {},
  getEvent: async (id) => null,
  deleteEvent: async (id) => {},
};

MessageQueue Interface

import type { MessageQueue, EventMessage } from '@types/resilientmq__core';

const queue: MessageQueue = {
  connect: async () => {},
  publish: async (queue, event, options) => {},
  consume: async (queue, onMessage) => {},
};

ResilientConsumerConfig

import type { ResilientConsumerConfig } from '@types/resilientmq__core';

const config: ResilientConsumerConfig = {
    connection: 'amqp://localhost',
    consumeQueue: {
        queue: 'main.queue',
        options: { durable: true }
    },
    retryQueue: {
        queue: 'main.queue.retry',
        ttlMs: 10000,
        maxAttempts: 5,
        options: { durable: true }
    },
    deadLetterQueue: {
        queue: 'main.queue.dlq',
        options: { durable: true }
    },
    prefetch: 5,
    eventsToProcess: [
        { type: 'user.created', handler: async (payload) => console.log(payload) }
    ],
    store: { ... } // implements EventStore
};

Docs

See ResilientMQ Core Docs for complete details.

Issues

🐛 Bugs

Please file an issue if you notice missing types, incorrect structures, or inconsistencies.

See Bugs

💡 Feature Requests

Have suggestions for new interfaces or type helpers? Open a feature request.

See Feature Requests

Contributors

LICENSE

MIT