@eric8810/catcher-core

Shared TypeScript type definitions for the catcher toolkit. Zero runtime dependencies.
This package is consumed by @eric8810/catcher-http, @eric8810/catcher-ws, and @eric8810/catcher-web. You typically don't install it directly.
💡 Node.js users: For Rust-native performance, use @eric8810/catcher-napi-http and @eric8810/catcher-napi-ws instead. They provide typed TS wrappers with the same config schema and much better throughput.
Install
npm install @eric8810/catcher-core
Exported Types
HTTP
IHttpClient | HTTP client interface (get, post, put, delete, patch) |
HttpClientConfig | Client configuration |
RequestConfig | Per-request options |
HttpResponse | Response shape |
ProgressEvent | Upload/download progress |
InterceptorManager | Request/response interceptor API |
Error
CatcherHttpError | Enhanced error with type, request, response, attempt info |
CatcherErrorType | 'connection' | 'timeout' | 'http' | 'cancelled' | 'unknown' |
isCatcherError() | Type guard for CatcherHttpError |
Network
ProxyConfig | HTTP/HTTPS proxy settings |
DnsConfig | DNS resolution options |
TlsConfig | TLS/SSL settings |
RedirectInfo | Redirect policy |
TransportAdapter | Custom transport adapter |
SSE
SSEStream | AsyncIterable SSE line stream |
SSEClient | Long-lived SSE connection with auto-reconnect |
SSEStreamOptions | Stream configuration |
SSEClientOptions | Client configuration |
SSETimeoutError | Timeout error type |
Events
ClientEvent | Event payload types (requestComplete, retry, etc.) |
Usage
import type { IHttpClient, HttpClientConfig, CatcherHttpError } from '@eric8810/catcher-core'
import { isCatcherError } from '@eric8810/catcher-core'
try {
const data = await client.get('/api/data')
} catch (err) {
if (isCatcherError(err)) {
console.log(err.type, err.attempt, err.elapsedMs)
}
}
License
MIT