@iota-big3/sdk-gateway
Version:
Universal API Gateway with protocol translation, intelligent routing, rate limiting, health checking, and caching
60 lines • 1.84 kB
TypeScript
import { EventEmitter } from 'events';
import type { GatewayRequest, GatewayResponse } from '../types/gateway-types';
export interface ChaosOptions {
enabled: boolean;
failures: {
networkLatency: {
probability: number;
minMs: number;
maxMs: number;
};
serviceFailure: {
probability: number;
statusCodes: number[];
};
timeouts: {
probability: number;
duration: number;
};
resourceExhaustion: {
probability: number;
type: 'cpu' | 'memory' | 'connections';
};
malformedResponse: {
probability: number;
types: ('truncated' | 'invalid-json' | 'empty' | 'huge')[];
};
};
seed?: number;
}
export declare class ChaosError extends Error {
readonly type: string;
readonly injectedAt: number;
constructor(message: string, type: string, injectedAt?: number);
}
export declare class ChaosMiddleware extends EventEmitter {
private readonly options;
private random;
private injectionCount;
constructor(options: ChaosOptions);
injectChaosAsync(request: GatewayRequest): Promise<void>;
transformResponse(response: GatewayResponse): GatewayResponse;
private shouldInject;
private injectNetworkLatencyAsync;
private selectRandomStatusCode;
private selectRandomType;
private simulateResourceExhaustionAsync;
private simulateCPUSpikeAsync;
private simulateMemoryPressureAsync;
private createMalformedResponse;
private sleepAsync;
getStatistics(): {
enabled: boolean;
injections: Record<string, number>;
uptime: number;
};
reset(): void;
enable(): void;
disable(): void;
}
//# sourceMappingURL=chaos-middleware.d.ts.map