synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
50 lines (49 loc) • 2.75 kB
TypeScript
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 {};