@rudderstack/integrations-lib
Version:
A comprehensive TypeScript library providing shared utilities, SDKs, and tools for RudderStack integrations and destinations.
40 lines • 1.87 kB
TypeScript
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