0.1.4 • Published 6 months ago
@resilientmq/types__core v0.1.4
@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 -yThen install this types package:
npm install @types/resilientmq__core --save-devPurpose
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.
💡 Feature Requests
Have suggestions for new interfaces or type helpers? Open a feature request.