UNPKG

atomic-saga

Version:

A comprehensive npm package for ensuring atomic API operations in distributed Node.js applications using Saga patterns, compensating transactions, and idempotent operations

34 lines 1.19 kB
import { Request, Response, NextFunction } from 'express'; import { IdempotencyStore, Logger } from '../types'; /** * Idempotency Middleware for Express * Ensures that API operations are idempotent using unique idempotency keys */ export declare class IdempotencyMiddleware { private readonly store; private readonly logger; private readonly keyHeader; private readonly keyExpiryHours; constructor(store: IdempotencyStore, logger: Logger, keyHeader?: string, keyExpiryHours?: number); /** * Express middleware function */ middleware(): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Generate a unique idempotency key */ generateKey(): string; /** * Validate idempotency key format */ validateKey(key: string): boolean; /** * Clean up expired idempotency keys */ cleanupExpiredKeys(): Promise<void>; } /** * Decorator for marking methods as idempotent */ export declare function Idempotent(keyGenerator?: () => string): (_target: any, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; //# sourceMappingURL=IdempotencyMiddleware.d.ts.map