UNPKG

@allan1361/iota-big3-sdk-middleware

Version:

🏆 A+ Grade Certified Enterprise Middleware Framework - Phase 3 Certified (90/100) with advanced resilience patterns, comprehensive type safety, and production-ready observability

44 lines 1.67 kB
import type { IndustryType, SDK } from '@iota-big3/sdk-core'; import type { Request, RequestHandler, Response } from 'express'; import type { FastifyInstance } from 'fastify'; export interface RateLimitConfig { windowMs?: number; max?: number; message?: string; statusCode?: number; headers?: boolean; skipSuccessfulRequests?: boolean; skipFailedRequests?: boolean; keyGenerator?: (req: Request) => string; skip?: (req: Request) => boolean; handler?: (req: Request, res: Response) => void; onLimitReached?: (req: Request, res: Response) => void; store?: RateLimitStore; } export interface RateLimitMetadata { serviceName: string; tribe?: string; industry?: IndustryType; environment?: string; sdk?: SDK; } export interface RateLimitStore { incrementAsync(key: string): Promise<{ totalHits: number; resetTime?: Date; }>; decrementAsync(key: string): Promise<void>; resetAsync(key: string): Promise<void>; resetAllAsync(): Promise<void>; } export interface RateLimitMiddleware extends RequestHandler { express: RequestHandler; fastify: (fastify: FastifyInstance) => Promise<void>; resetKey: (key: string) => Promise<void>; resetAll: () => Promise<void>; } export declare function createRateLimitMiddleware(metadata: RateLimitMetadata, config?: RateLimitConfig): RateLimitMiddleware; export declare function createLegacyRateLimitMiddleware(config?: RateLimitConfig): RateLimitMiddleware; export declare const rateLimitMiddleware: typeof createRateLimitMiddleware; export default createRateLimitMiddleware; //# sourceMappingURL=rate-limit-middleware.d.ts.map