novel-reader-sdk
Version:
SDK for Novel Reader API
79 lines • 2.96 kB
TypeScript
/**
* 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