UNPKG

@erickzao/api-stats-cli

Version:

CLI oficial para configuração automática do API Stats Logger

97 lines (84 loc) 2.63 kB
declare module 'api-stats-logger' { export interface LoggerOptions { apiKey?: string; url?: string; service?: string; environment?: string; batchSize?: number; flushInterval?: number; enabled?: boolean; maxRetries?: number; retryDelay?: number; captureErrors?: boolean; capturePerformance?: boolean; } export interface LogEntry { level: string; message: string; service?: string; environment?: string; metadata?: Record<string, any>; } export interface LoggerStats { sent: number; failed: number; retries: number; lastFlush: string | null; bufferSize: number; failedBufferSize: number; enabled: boolean; } export interface MiddlewareOptions { logger?: ApiStatsLogger; captureBody?: boolean; captureHeaders?: boolean; captureQuery?: boolean; captureParams?: boolean; skipPaths?: string[]; skipMethods?: string[]; skipRoutes?: string[]; maxBodySize?: number; } export interface AutoInstrumentOptions { autoDetect?: boolean; detectFramework?: boolean; captureHTTP?: boolean; captureDatabase?: boolean; captureErrors?: boolean; captureQueries?: boolean; maxQueryLength?: number; } export class Logger { constructor(options: LoggerOptions); log(entry: LogEntry): void; flush(): Promise<void>; retryFailed(): Promise<void>; getStats(): LoggerStats; disable(): void; enable(): void; close(): Promise<void>; } export class ApiStatsLogger extends Logger { constructor(options?: LoggerOptions); info(message: string, metadata?: Record<string, any>): void; error(message: string, metadata?: Record<string, any>): void; warn(message: string, metadata?: Record<string, any>): void; debug(message: string, metadata?: Record<string, any>): void; static expressMiddleware(options?: MiddlewareOptions): Function; static nestMiddleware(options?: MiddlewareOptions): Function; static init(options?: LoggerOptions & AutoInstrumentOptions): ApiStatsLogger; } export interface DatabaseMiddleware { mongoose(): void; sequelize(instance: any): void; } export interface MiddlewareManager { express(options?: MiddlewareOptions): Function; nest(options?: MiddlewareOptions): Function; database(options?: { logger: ApiStatsLogger; captureQueries?: boolean; maxQueryLength?: number }): DatabaseMiddleware; } export interface AutoInstrument { setup(logger: ApiStatsLogger, options?: AutoInstrumentOptions): void; } export default ApiStatsLogger; }