@syntropylog/adapters
Version:
External adapters for SyntropyLog framework
52 lines (50 loc) • 1.55 kB
TypeScript
interface SerializationContext {
sanitize?: boolean;
sensitiveFields?: string[];
maxDepth?: number;
timeout?: number;
}
interface SerializationResult {
success: boolean;
data?: any;
error?: string;
metadata: {
serializer: string;
complexity: 'low' | 'medium' | 'high';
duration: number;
timestamp: string;
};
}
interface ISerializer {
name: string;
priority: number;
canSerialize(data: any): boolean;
getComplexity(data: any): 'low' | 'medium' | 'high';
serialize(data: any, context: SerializationContext): Promise<SerializationResult>;
}
interface SerializationStep {
name: string;
execute(data: any, context: SerializationContext): Promise<any>;
}
interface SerializationPipeline {
steps: SerializationStep[];
addStep(step: SerializationStep): void;
execute(data: any, context: SerializationContext): Promise<SerializationResult>;
}
interface TimeoutStrategy {
name: string;
calculateTimeout(data: any, context: SerializationContext): number;
}
interface SerializationMetrics {
totalSerializations: number;
successfulSerializations: number;
failedSerializations: number;
averageDuration: number;
totalDuration: number;
serializerStats: Record<string, {
count: number;
averageDuration: number;
totalDuration: number;
}>;
}
export type { ISerializer, SerializationContext, SerializationMetrics, SerializationPipeline, SerializationResult, SerializationStep, TimeoutStrategy };