UNPKG

@ackee/antonio-core

Version:

A HTTP client built on fetch API with axios-like API.

38 lines (37 loc) 2.89 kB
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;