UNPKG

meshed-monitor-sdk

Version:

JavaScript/Node.js SDK for MeshedMonitor with real-time logging and advanced features

98 lines (83 loc) 2.61 kB
/** * TypeScript definitions for MeshedMonitor JavaScript SDK */ export interface MeshedMonitorConfig { apiKey?: string; apiUrl?: string; projectId?: string; environment?: string; debug?: boolean; batchSize?: number; batchTimeout?: number; maxRetries?: number; retryDelay?: number; enableBackgroundSync?: boolean; } export interface User { id: string; email?: string; name?: string; [key: string]: any; } export interface LogMetadata { source?: string; tags?: Record<string, any>; spanId?: string; duration?: number; [key: string]: any; } export type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR'; export interface Transaction { id: string; startSpan(name: string): Span; setTag(key: string, value: any): Transaction; finish(): void; } export interface Span { id: string; setTag(key: string, value: any): Span; finish(): void; } export interface RequestContext { requestId: string; traceId: string; log(message: string, level?: LogLevel, metadata?: LogMetadata): void; startTransaction(name: string): Transaction; } declare global { namespace Express { interface Request { meshedMonitor?: RequestContext; } } } export default class MeshedMonitorSDK { constructor(config?: MeshedMonitorConfig); // Configuration & Context setUser(user: User): MeshedMonitorSDK; setTag(key: string, value: any): MeshedMonitorSDK; setTags(tags: Record<string, any>): MeshedMonitorSDK; setRelease(version: string): MeshedMonitorSDK; setRequestContext(requestId: string, traceId?: string): MeshedMonitorSDK; clearContext(): MeshedMonitorSDK; // Logging Methods log(message: string, level?: LogLevel, metadata?: LogMetadata): MeshedMonitorSDK; debug(message: string, metadata?: LogMetadata): MeshedMonitorSDK; info(message: string, metadata?: LogMetadata): MeshedMonitorSDK; warn(message: string, metadata?: LogMetadata): MeshedMonitorSDK; error(message: string, metadata?: LogMetadata): MeshedMonitorSDK; captureError(error: Error, additionalData?: Record<string, any>): MeshedMonitorSDK; // Performance Tracking startTransaction(name: string, operation?: string): Transaction; startSpan(name: string, transactionId?: string, operation?: string): Span; finishSpan(spanId: string): void; finishTransaction(transactionId: string): void; // Middleware expressMiddleware(): (req: any, res: any, next: any) => void; // Utilities wrap<T extends (...args: any[]) => any>(fn: T, name?: string): T; healthCheck(): Promise<boolean>; // Lifecycle flush(): Promise<void>; destroy(): void; }