@ackee/antonio-core
Version:
A HTTP client built on fetch API with axios-like API.
38 lines (37 loc) • 2.89 kB
TypeScript
import { RequestBodyData, RequestConfig, RequestMethod, RequestResult } from '../../../types';
import { DefaultRequestConfig } from '../../request/config';
import type { GeneralConfig } from '../general-config';
import type { InterceptorManagers } from '../../interceptors';
export type AntonioRequest<RM extends RequestMethod> = Readonly<RequestConfig & {} & (RM extends 'POST' | 'PATCH' | 'PUT' ? {
body: Required<RequestBodyData>;
method: RM;
url: string;
} : {
method: RM;
url: string;
})>;
export declare class Antonio<TSuccessDataDefault = unknown, TErrorDataDefault = unknown> {
readonly defaults: DefaultRequestConfig;
readonly interceptors: InterceptorManagers;
readonly generalConfig: GeneralConfig;
/**
* @example
* ```ts
* import { Antonio } from `@ackee/antonio-core`;
*
* const api = new Antonio({
* baseURL: 'https://some-domain.com/api/',
* });
* ```
*/
constructor(requestConfig?: RequestConfig, generalConfig?: Partial<GeneralConfig>);
request<RM extends RequestMethod, TSuccessData = TSuccessDataDefault, TErrorData = TErrorDataDefault>(props: AntonioRequest<RM>): Promise<RequestResult<TSuccessData>>;
post<TSuccessData = TSuccessDataDefault, TErrorData = TErrorDataDefault>(url: string, body: RequestBodyData, requestConfig?: RequestConfig): Generator<unknown, RequestResult<TSuccessData>, IteratorResult<unknown, RequestResult<TSuccessData>>>;
put<TSuccessData = TSuccessDataDefault, TErrorData = TErrorDataDefault>(url: string, body: RequestBodyData, requestConfig?: RequestConfig): Generator<unknown, RequestResult<TSuccessData>, IteratorResult<unknown, RequestResult<TSuccessData>>>;
patch<TSuccessData = TSuccessDataDefault, TErrorData = TErrorDataDefault>(url: string, body: RequestBodyData, requestConfig?: RequestConfig): Generator<unknown, RequestResult<TSuccessData>, IteratorResult<unknown, RequestResult<TSuccessData>>>;
get<TSuccessData = TSuccessDataDefault, TErrorData = TErrorDataDefault>(url: string, requestConfig?: RequestConfig): Generator<unknown, RequestResult<TSuccessData>, IteratorResult<unknown, RequestResult<TSuccessData>>>;
delete<TSuccessData = TSuccessDataDefault, TErrorData = TErrorDataDefault>(url: string, requestConfig?: RequestConfig): Generator<unknown, RequestResult<TSuccessData>, IteratorResult<unknown, RequestResult<TSuccessData>>>;
head<TSuccessData = TSuccessDataDefault, TErrorData = TErrorDataDefault>(url: string, requestConfig?: RequestConfig): Generator<unknown, RequestResult<TSuccessData>, IteratorResult<unknown, RequestResult<TSuccessData>>>;
options<TSuccessData = TSuccessDataDefault, TErrorData = TErrorDataDefault>(url: string, requestConfig?: RequestConfig): Generator<unknown, RequestResult<TSuccessData>, IteratorResult<unknown, RequestResult<TSuccessData>>>;
}
export type TAntonio = Antonio;