react-query-external-sync
Version:
A tool for syncing React Query state to an external Dev Tools
61 lines (60 loc) • 1.93 kB
TypeScript
/**
* Log types supported by the logger
*/
export type LogType = "log" | "warn" | "error";
/**
* Helper function for controlled logging
* Only shows logs when enableLogs is true
* Always shows warnings and errors regardless of enableLogs setting
*/
export declare function log(message: string, enableLogs: boolean, type?: LogType): void;
/**
* Context for sync operations
*/
interface SyncContext {
deviceName: string;
deviceId: string;
platform: string;
requestId: string;
timestamp: number;
}
/**
* Sync logger for external sync operations
* Provides clean, grouped logging similar to API route logging
*/
declare class ExternalSyncLogger {
private operations;
/**
* Start a new sync operation
*/
startOperation(type: "connection" | "query-action" | "storage-update" | "sync-session", context: Partial<SyncContext>, enableLogs?: boolean): string;
/**
* Log a storage update
*/
logStorageUpdate(requestId: string, storageType: "mmkv" | "asyncStorage" | "secureStore", key: string, currentValue: unknown, newValue: unknown): void;
/**
* Log a query action
*/
logQueryAction(requestId: string, action: string, queryHash: string, success?: boolean): void;
/**
* Log a connection event
*/
logConnectionEvent(requestId: string, event: "connect" | "disconnect" | "reconnect", details?: string): void;
/**
* Log an error
*/
logError(requestId: string, type: string, message: string, error?: Error): void;
/**
* Complete and log the operation summary
*/
completeOperation(requestId: string, success?: boolean): void;
private generateRequestId;
private getOperationIcon;
private getOperationTitle;
private getStorageIcon;
private getActionIcon;
private getActionDisplayName;
private formatDuration;
}
export declare const syncLogger: ExternalSyncLogger;
export {};