UNPKG

synapse-storage

Version:

Набор инструментов для управления состоянием и апи-запросами

50 lines (49 loc) 2.75 kB
import type { ILogger } from '../core/storage/storage.interface'; /** * Базовый класс ошибок Synapse. * Позволяет отличать ошибки библиотеки от прочих через `instanceof`. */ export declare class SynapseError extends Error { readonly context?: string | undefined; readonly cause?: unknown | undefined; constructor(message: string, context?: string | undefined, cause?: unknown | undefined); } /** * Категории обработки ошибок в Synapse: * * - CRITICAL: Ошибки конфигурации/инициализации → log + throw (fail fast) * - OPERATION: Ошибки CRUD-операций → log + rethrow (вызывающий код решает) * - CALLBACK: Ошибки в пользовательских callback'ах → log + swallow (не крашим приложение) * - CLEANUP: Ошибки при destroy/unsubscribe → log + swallow (best-effort) */ type LogMethod = 'error' | 'warn'; /** * Логирует ошибку через ILogger (если есть) или через console-fallback. */ export declare function logError(message: string, error: unknown, logger?: ILogger | null, level?: LogMethod): void; /** * OPERATION pattern: логирует и пробрасывает ошибку. * Для CRUD-операций (get, set, update, delete) и инициализации. */ export declare function handleOperationError(context: string, error: unknown, logger?: ILogger | null): never; /** * CALLBACK pattern: логирует и проглатывает ошибку. * Для пользовательских callback'ов, подписчиков, эффектов. * Ошибка в одном callback'е не должна ломать остальные. */ export declare function handleCallbackError(context: string, error: unknown, logger?: ILogger | null): void; /** * CLEANUP pattern: логирует предупреждение и продолжает. * Для destroy(), unsubscribe() и прочих cleanup-операций. */ export declare function handleCleanupError(context: string, error: unknown, logger?: ILogger | null): void; /** * Обёртка для безопасного вызова callback'а (CALLBACK pattern). * Возвращает результат или undefined при ошибке. */ export declare function safeCallback<T>(fn: () => T, context: string, logger?: ILogger | null): T | undefined; /** * Обёртка для promise в fire-and-forget сценариях (CLEANUP pattern). */ export declare function safePromise(promise: Promise<unknown>, context: string, logger?: ILogger | null): void; export {};