UNPKG

@stack.thefennec.dev/telegram-export-parser

Version:

TypeScript library for parsing Telegram Desktop's data export with full type safety

96 lines 3.07 kB
/** * @fileoverview Error handling for Telegram export parsing operations. * * Provides enhanced error types with context preservation and error chaining * for debugging complex parsing failures in large Telegram exports. * * @example * ```typescript * import { TelegramExportParseError } from './errors' * * try { * const parsed = parseMessage(rawData) * } catch (error) { * if (error instanceof TelegramExportParseError) { * console.log('Context:', error.context) * console.log('Root cause:', error.cause) * } * } * ``` */ /** * Enhanced error class for Telegram export parsing failures. * * Extends native Error with context preservation and error chaining capabilities. * Essential for debugging parsing issues in large exports where failures need * detailed context about the failed data and underlying causes. * * **Features:** * - **Context preservation** - Stores raw data that caused the failure * - **Error chaining** - Links to underlying errors for root cause analysis * - **Stack trace capture** - Proper stack traces in Node.js environments * - **Type safety** - Works seamlessly with TypeScript error handling * * @example Basic usage * ```typescript * throw new TelegramExportParseError('Invalid message format') * ``` * * @example With context for debugging * ```typescript * throw new TelegramExportParseError( * 'Failed to parse message', * rawMessageData // Preserve failing data * ) * ``` * * @example Error chaining * ```typescript * try { * parseDate(rawDate) * } catch (dateError) { * throw new TelegramExportParseError( * 'Message contains invalid date', * rawMessage, * dateError // Chain the original error * ) * } * ``` */ export declare class TelegramExportParseError extends Error { /** Raw data that caused the parsing failure (for debugging) */ readonly context?: unknown; /** Underlying error that triggered this parsing failure (for error chaining) */ readonly cause?: Error; /** * Creates a new parsing error with optional context and cause chaining. * * @param message - Human-readable error description * @param context - Raw data that caused the failure (preserved for debugging) * @param cause - Underlying error that triggered this failure (for error chaining) * * @example Parser error with context * ```typescript * const rawMessage = { id: 123, invalid: 'data' } * throw new TelegramExportParseError( * 'Message missing required "type" field', * rawMessage // Preserve for debugging * ) * ``` * * @example Error chaining * ```typescript * try { * JSON.parse(malformedJson) * } catch (jsonError) { * throw new TelegramExportParseError( * 'Invalid JSON in message data', * rawData, * jsonError // Chain the JSON parsing error * ) * } * ``` */ constructor(message: string, context?: unknown, cause?: Error); } //# sourceMappingURL=errors.d.ts.map