@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
55 lines • 2.09 kB
TypeScript
import type { IndustryType, SDK } from '@iota-big3/sdk-core';
import { SDKError } from '@iota-big3/sdk-types';
import type { ErrorRequestHandler, NextFunction, Request, Response } from 'express';
import type { FastifyInstance } from 'fastify';
export interface ServiceMetadata {
name: string;
tribe?: string;
industry?: IndustryType;
version?: string;
environment?: string;
sdk?: SDK;
}
export interface ErrorResponse {
error: {
code: string;
message: string;
service: string;
industry?: IndustryType;
timestamp: string;
details?: Record<string, unknown>;
suggestions?: string[];
requestId?: string;
};
}
export interface ErrorCodeMap {
[key: string]: number;
}
export interface ErrorMiddlewareConfig {
enableStackTrace?: boolean;
customFormatter?: (error: Error, req: Request) => ErrorResponse;
errorCodes?: Record<string, number>;
industrySpecific?: boolean;
}
export interface ErrorMiddleware extends ErrorRequestHandler {
express: ErrorRequestHandler;
fastify: (fastify: FastifyInstance) => Promise<void>;
}
export declare function createErrorMiddleware(metadata: ServiceMetadata, options?: {
enableStackTrace?: boolean;
errorCodeMap?: ErrorCodeMap;
customFormatter?: (error: any, req: Request) => ErrorResponse;
}): ErrorMiddleware;
export declare function setupGlobalErrorHandlers(metadata: ServiceMetadata): void;
export declare function asyncHandler<T extends Request = Request>(fn: (req: T, res: Response, next: NextFunction) => Promise<any>): (req: T, res: Response, next: NextFunction) => void;
export declare function createValidationError(validationError: {
details?: Array<{
message: string;
path: string;
}>;
message?: string;
}): SDKError;
export declare function createPhilosophyError(message: string, impact: string, industry?: IndustryType): SDKError;
export declare const errorMiddleware: typeof createErrorMiddleware;
export default createErrorMiddleware;
//# sourceMappingURL=error-middleware.d.ts.map