@message-in-the-middle/core
Version:
Framework-agnostic middleware pattern for message queue processing. Core package with all middlewares.
25 lines (24 loc) • 1.18 kB
TypeScript
import { InboundMiddleware, OutboundMiddleware, MessageContext } from '../types';
export interface MetricsCollector {
increment(metric: string, tags?: Record<string, string>): void;
timing(metric: string, value: number, tags?: Record<string, string>): void;
gauge(metric: string, value: number, tags?: Record<string, string>): void;
}
export interface MetricsInboundMiddlewareOptions {
prefix?: string;
}
export declare class MetricsInboundMiddleware<T = any> implements InboundMiddleware<T> {
private readonly metricsCollector;
private readonly prefix;
constructor(metricsCollector: MetricsCollector, options?: MetricsInboundMiddlewareOptions);
process(context: MessageContext<T>, next: () => Promise<void>): Promise<void>;
}
export interface MetricsOutboundMiddlewareOptions {
prefix?: string;
}
export declare class MetricsOutboundMiddleware<T = any> implements OutboundMiddleware<T> {
private readonly metricsCollector;
private readonly prefix;
constructor(metricsCollector: MetricsCollector, options?: MetricsOutboundMiddlewareOptions);
processOutbound(context: MessageContext<T>, next: () => Promise<void>): Promise<void>;
}