UNPKG

syntropylog

Version:

An instance manager with observability for Node.js applications

60 lines (59 loc) 2.26 kB
import { SerializationResult } from './types'; import { SerializableData, SerializationPipelineContext } from '../types'; export interface PipelineStep<T> { name: string; execute(data: T, context: SerializationPipelineContext): Promise<T>; } export interface OperationTimeoutStrategy { calculateTimeout(data: SerializableData): number; getStrategyName(): string; } export interface PipelineMetrics { stepDurations: { [stepName: string]: number; }; totalDuration: number; operationTimeout: number; timeoutStrategy: string; } export declare class SerializationPipeline { private steps; private timeoutStrategies; private sanitizer; private metrics; constructor(); addStep(step: PipelineStep<SerializableData>): void; addTimeoutStrategy(strategy: OperationTimeoutStrategy): void; process(data: SerializableData, context: SerializationPipelineContext): Promise<SerializationResult>; getMetrics(): PipelineMetrics | null; private selectTimeoutStrategy; private initializeDefaultStrategies; } export declare class DefaultTimeoutStrategy implements OperationTimeoutStrategy { calculateTimeout(data: SerializableData): number; getStrategyName(): string; } export declare class PrismaTimeoutStrategy implements OperationTimeoutStrategy { calculateTimeout(data: SerializableData): number; getStrategyName(): string; } export declare class TypeORMTimeoutStrategy implements OperationTimeoutStrategy { calculateTimeout(data: SerializableData): number; getStrategyName(): string; } export declare class MySQLTimeoutStrategy implements OperationTimeoutStrategy { calculateTimeout(data: SerializableData): number; getStrategyName(): string; } export declare class PostgreSQLTimeoutStrategy implements OperationTimeoutStrategy { calculateTimeout(data: SerializableData): number; getStrategyName(): string; } export declare class SQLServerTimeoutStrategy implements OperationTimeoutStrategy { calculateTimeout(data: SerializableData): number; getStrategyName(): string; } export declare class OracleTimeoutStrategy implements OperationTimeoutStrategy { calculateTimeout(data: SerializableData): number; getStrategyName(): string; }