UNPKG

novel-reader-sdk

Version:

SDK for Novel Reader API

79 lines 2.96 kB
/** * SDK Error Classes * * Domain-specific error classes for client-side error handling * Matches the service's error types for consistency */ import type { ErrorCode, ErrorType, ApiError } from './types'; export declare abstract class ScrapingServiceError extends Error { readonly cause?: unknown | undefined; abstract readonly code: ErrorCode; abstract readonly type: ErrorType; constructor(message: string, cause?: unknown | undefined); } export declare class NetworkError extends ScrapingServiceError { readonly code: "INTERNAL_SERVER_ERROR"; readonly type: "SCRAPING_ERROR"; constructor(message: string, cause?: unknown); } export declare class TimeoutError extends ScrapingServiceError { readonly code: "TIMEOUT_ERROR"; readonly type: "TIMEOUT_ERROR"; constructor(message: string, cause?: unknown); } export declare class ValidationError extends ScrapingServiceError { readonly code: "BAD_REQUEST"; readonly type: "VALIDATION_ERROR"; constructor(message: string, cause?: unknown); } export declare class ChapterNotFoundError extends ScrapingServiceError { readonly code: "NOT_FOUND"; readonly type: "CHAPTER_NOT_FOUND"; constructor(url: string); } export declare class ContentNotFoundError extends ScrapingServiceError { readonly code: "NOT_FOUND"; readonly type: "CONTENT_NOT_FOUND"; constructor(message: string); } export declare class UnsupportedSiteError extends ScrapingServiceError { readonly code: "BAD_REQUEST"; readonly type: "UNSUPPORTED_SITE"; constructor(hostname: string); } export declare class BrowserError extends ScrapingServiceError { readonly code: "INTERNAL_SERVER_ERROR"; readonly type: "BROWSER_ERROR"; constructor(message: string); } export declare class RateLimitError extends ScrapingServiceError { readonly code: "RATE_LIMIT_EXCEEDED"; readonly type: "RATE_LIMIT_ERROR"; constructor(message: string); } export declare class ServiceError extends ScrapingServiceError { readonly code: "INTERNAL_SERVER_ERROR"; readonly type: "SCRAPING_ERROR"; constructor(message: string, cause?: unknown); } /** * Creates appropriate error instance from API error response */ export declare function createErrorFromApiResponse(apiError: ApiError): ScrapingServiceError; /** * Type guard to check if error is a scraping service error */ export declare function isScrapingServiceError(error: unknown): error is ScrapingServiceError; /** * Type guard to check if error is a specific error type */ export declare function isErrorOfType<T extends ScrapingServiceError>(error: unknown, ErrorClass: new (...args: unknown[]) => T): error is T; /** * Extract error message from various error types */ export declare function getErrorMessage(error: unknown): string; /** * HTTP status code mapping for errors */ export declare const httpStatusMap: Record<ErrorCode, number>; //# sourceMappingURL=errors.d.ts.map