@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
TypeScript
/**
* @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