UNPKG

rynex

Version:

A minimalist TypeScript framework for building reactive web applications with no virtual DOM

141 lines 3.5 kB
/** * Rynex Developer Tools * Debugging, logging, and performance profiling utilities */ /** * Logger levels */ export declare enum LogLevel { DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3, NONE = 4 } /** * Logger configuration */ export interface LoggerConfig { level: LogLevel; prefix?: string; timestamp?: boolean; colors?: boolean; } /** * Logger class for structured logging */ declare class Logger { private config; private logs; constructor(config?: Partial<LoggerConfig>); private shouldLog; private formatMessage; private logToConsole; debug(message: string, data?: any): void; info(message: string, data?: any): void; warn(message: string, data?: any): void; error(message: string, data?: any): void; getLogs(): { level: string; message: string; timestamp: number; data?: any; }[]; clearLogs(): void; setLevel(level: LogLevel): void; } /** * Create or get logger instance */ export declare function logger(config?: Partial<LoggerConfig>): Logger; /** * Performance profiler */ export interface ProfileEntry { name: string; startTime: number; endTime?: number; duration?: number; metadata?: any; } declare class Profiler { private profiles; private completed; start(name: string, metadata?: any): void; end(name: string): number | undefined; measure(name: string, fn: () => any, metadata?: any): any; measureAsync(name: string, fn: () => Promise<any>, metadata?: any): Promise<any>; getProfile(name: string): ProfileEntry | undefined; getAllProfiles(): ProfileEntry[]; getAverageDuration(name: string): number; clear(): void; report(): { active: ProfileEntry[]; completed: ProfileEntry[]; summary: Record<string, any>; }; private getSummary; } /** * Get profiler instance */ export declare function profiler(): Profiler; /** * DevTools integration */ export interface DevToolsConfig { enabled: boolean; logger?: Logger; profiler?: Profiler; } declare class DevTools { private config; private logger; private profiler; constructor(config?: Partial<DevToolsConfig>); private attachToWindow; inspect(element: HTMLElement): { tagName: string; id: string; className: string; attributes: { name: string; value: string; }[]; children: number; dataset: { [name: string]: string | undefined; }; } | null; getState(): { message: string; }; enable(): void; disable(): void; } /** * Initialize or get devtools */ export declare function devtools(config?: Partial<DevToolsConfig>): DevTools; /** * Quick access functions */ export declare const log: { debug: (msg: string, data?: any) => void; info: (msg: string, data?: any) => void; warn: (msg: string, data?: any) => void; error: (msg: string, data?: any) => void; }; export declare const profile: { start: (name: string, metadata?: any) => void; end: (name: string) => number | undefined; measure: (name: string, fn: () => any, metadata?: any) => any; measureAsync: (name: string, fn: () => Promise<any>, metadata?: any) => Promise<any>; report: () => { active: ProfileEntry[]; completed: ProfileEntry[]; summary: Record<string, any>; }; }; export {}; //# sourceMappingURL=devtools.d.ts.map