clean-jsdoc-theme TypeDoc APIv0.0.0

HttpClient

Source: HttpClient.ts:240

HTTP Client class for making API requests

Remarks

A comprehensive HTTP client with support for:

  • All standard HTTP methods
  • Request/response interceptors
  • Automatic retries
  • Timeout handling
  • TypeScript generics for type-safe responses

Properties

  • baseUrl (string) — Base URL for all requests
  • defaultHeaders (Record<string, string>, optional) — Default headers for all requests
  • defaultTimeout (number, optional) — Default timeout in milliseconds

Example

CODE
Creating and configuring a client:
```typescript
const client = new HttpClient(\{
  baseUrl: 'https://api.example.com',
  defaultTimeout: 5000,
  defaultHeaders: \{
    'Content-Type': 'application/json',
    'Authorization': 'Bearer token'
  \}
\})

// Add request interceptor
client.addRequestInterceptor((config) => \{
  config.headers = \{
    ...config.headers,
    'X-Request-ID': generateRequestId()
  \}
  return config
\})
```
CODE
Making requests:
```typescript
// GET request with type safety
const users = await client.get<User[]>('/users')

// POST request with body
const newUser = await client.post<User>('/users', \{
  name: 'John',
  email: 'john@example.com'
\})

// Request with custom config
const data = await client.get<Data>('/data', \{
  timeout: 60000,
  retries: 3
\})
```

Constructors

new HttpClient( options: { baseUrl: string; defaultHeaders?: Record<string, string>; defaultTimeout?: number }, ): HttpClient

Parameters

  • options ({ baseUrl: string; defaultHeaders?: Record<string, string>; defaultTimeout?: number }) — Client configuration options

Returns

HttpClient


Properties

baseUrl: string

Base URL for all requests

Methods

addRequestInterceptor( interceptor: RequestInterceptor, ): () => void

Adds a request interceptor

Parameters

Returns

  • () => void — Function to remove the interceptor

Example

CODE
const remove = client.addRequestInterceptor((config) => {
  console.log('Request:', config)
  return config
})

// Later: remove the interceptor
remove()

addResponseInterceptor< T = unknown, >( interceptor: ResponseInterceptor<T>, ): () => void

Adds a response interceptor

Type Parameters

  • T = unknown

Parameters

Returns

  • () => void — Function to remove the interceptor

delete< T = unknown, >( path: string, config?: RequestConfig, ): Promise<HttpResponse<T>>

Performs a DELETE request

Type Parameters

  • T = unknown — Expected response data type

Parameters

  • path (string) — Request path
  • config (RequestConfig, optional) — Request configuration

Returns

  • Promise<HttpResponse<T>> — Promise resolving to the response

get< T = unknown, >( path: string, config?: RequestConfig, ): Promise<HttpResponse<T>>

Performs a GET request

Type Parameters

  • T = unknown — Expected response data type

Parameters

  • path (string) — Request path
  • config (RequestConfig, optional) — Request configuration

Returns

  • Promise<HttpResponse<T>> — Promise resolving to the response

Example

CODE
const user = await client.get<User>('/users/123')
console.log(user.data.name)

patch< T = unknown, D = unknown, >( path: string, data?: D, config?: RequestConfig, ): Promise<HttpResponse<T>>

Performs a PATCH request

Type Parameters

  • T = unknown — Expected response data type
  • D = unknown — Request body data type

Parameters

  • path (string) — Request path
  • data (D, optional) — Request body data
  • config (RequestConfig, optional) — Request configuration

Returns

  • Promise<HttpResponse<T>> — Promise resolving to the response

post< T = unknown, D = unknown, >( path: string, data?: D, config?: RequestConfig, ): Promise<HttpResponse<T>>

Performs a POST request

Type Parameters

  • T = unknown — Expected response data type
  • D = unknown — Request body data type

Parameters

  • path (string) — Request path
  • data (D, optional) — Request body data
  • config (RequestConfig, optional) — Request configuration

Returns

  • Promise<HttpResponse<T>> — Promise resolving to the response

put< T = unknown, D = unknown, >( path: string, data?: D, config?: RequestConfig, ): Promise<HttpResponse<T>>

Performs a PUT request

Type Parameters

  • T = unknown — Expected response data type
  • D = unknown — Request body data type

Parameters

  • path (string) — Request path
  • data (D, optional) — Request body data
  • config (RequestConfig, optional) — Request configuration

Returns

  • Promise<HttpResponse<T>> — Promise resolving to the response