UNPKG

@rudderstack/integrations-lib

Version:

A comprehensive TypeScript library providing shared utilities, SDKs, and tools for RudderStack integrations and destinations.

40 lines 1.87 kB
import { AxiosRequestConfig } from 'axios'; import { HttpClient, IHttpLogger, IHttpStatsClient } from './clients/types'; export { ApiResponse, ApplicationErrorApiResponse, ClientErrorApiResponse, SuccessfulApiResponse, ResponseParser, IHttpLogger, IHttpStatsClient, } from './clients/types'; export declare enum ClientNames { Axios = "axios" } export type clientOptions = AxiosRequestConfig; /** * @class HttpClientFactory * @classdesc * A factory class to generate http clients * @example * const httpClient = HttpClientFactory.getHttpClient('axios'); * const response = await httpClient.post("https://example.com", { foo: "bar" }); * if (response.type === "success") { * console.log(response.statusCode); * console.log(response.responseBody); * } else if (response.type === "application-error") { * console.log(response.statusCode); * console.log(response.message); * console.log(response.responseBody); * } else if (response.type === "client-error") { * console.log(response.statusCode); * console.log(response.message); * } */ export declare class HttpClientFactory { static getHttpClient(name: ClientNames, options?: clientOptions): HttpClient; /** * Create HTTP client with metrics and logging capabilities * @param name - Client name (currently only supports Axios) * @param logger - Logger instance for request/response logging * @param statsClient - Stats client instance for metrics collection * @param defaultStatTags - Default stat tags for all requests * @param options - Axios configuration options * @returns Enhanced HTTP client with logging and metrics */ static getHttpClientWithMetrics(name: ClientNames, logger?: IHttpLogger, statsClient?: IHttpStatsClient, defaultStatTags?: Record<string, unknown>, options?: clientOptions): HttpClient; } //# sourceMappingURL=factory.d.ts.map