@rushdb/javascript-sdk
Version:
RushDB Javascript SDK
49 lines (48 loc) • 1.84 kB
TypeScript
import type { RequestData, RequestHeaders, ResponseHeaders } from './types.js';
type TimeoutError = TypeError & {
code?: string;
};
export interface HttpClientInterface {
makeRequest: (url: string, config: MakeRequestConfig) => Promise<HttpClientResponseInterface>;
}
export interface MakeRequestConfig<T extends Record<string, any> = Record<string, any>> {
credentials?: RequestCredentials;
headers?: RequestHeaders;
method: string;
protocol?: string;
requestData?: RequestData;
timeout?: number;
}
export interface HttpClientResponseInterface {
getHeaders: () => ResponseHeaders;
getRawResponse: () => unknown;
getStatusCode: () => number;
toJSON: () => Promise<any>;
toStream: (streamCompleteCallback: () => void) => unknown;
}
export declare class HttpClient implements HttpClientInterface {
static CONNECTION_CLOSED_ERROR_CODES: Array<string>;
static TIMEOUT_ERROR_CODE: string;
makeRequest(url: string, { headers, method, protocol, requestData, timeout }: MakeRequestConfig): Promise<HttpClientResponseInterface>;
static makeTimeoutError(): TimeoutError;
}
export declare class HttpClientGenericResponse implements HttpClientResponseInterface {
_statusCode: number;
_headers: ResponseHeaders;
constructor(statusCode: number, headers: ResponseHeaders);
getStatusCode(): number;
getHeaders(): ResponseHeaders;
getRawResponse(): unknown;
toStream(streamCompleteCallback: () => void): unknown;
toJSON(): any;
}
export declare class HttpClientResponse<T = unknown> implements HttpClientResponseInterface {
_res: T;
constructor(response: T);
getStatusCode(): number;
getHeaders(): ResponseHeaders;
getRawResponse(): unknown;
toStream(streamCompleteCallback: () => void): unknown;
toJSON(): any;
}
export {};