Interface for a http client.

interface HttpClientInterface {
    delete: <
        T extends object,
        QueryParamsObject extends
            Record<string, unknown> = Record<string, undefined | string>,
        HeaderParamsObject extends
            Record<string, HttpClientHeaderValue> = Partial<
            Record<KnownHeader, HttpClientHeaderValue>,
        >,
        ResponseHeaderMetaInputObject extends
            Record<string, HeaderParamMetadataInput> = Record<
            string,
            HeaderParamMetadataInput,
        >,
        BodyType extends JSON
        | FORM_DATA = JSON,
        IsArray extends boolean = false,
    >(
        url: string,
        options?: Partial<
            HttpOptions<
                T,
                QueryParamsObject,
                HeaderParamsObject,
                ResponseHeaderMetaInputObject,
                BodyType,
                IsArray,
            >,
        >,
    ) => Promise<
        HttpClientResponseForBodyType<
            T,
            HeaderMetaObjectToParamsObject<
                HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
            >,
            BodyType,
            IsArray,
        >,
    >;
    get: <
        T extends object,
        QueryParamsObject extends
            Record<string, unknown> = Record<string, undefined | string>,
        HeaderParamsObject extends
            Record<string, HttpClientHeaderValue> = Partial<
            Record<KnownHeader, HttpClientHeaderValue>,
        >,
        ResponseHeaderMetaInputObject extends
            Record<string, HeaderParamMetadataInput> = Record<
            string,
            HeaderParamMetadataInput,
        >,
        BodyType extends JSON
        | FORM_DATA = JSON,
        IsArray extends boolean = false,
    >(
        url: string,
        options?: Partial<
            HttpOptions<
                T,
                QueryParamsObject,
                HeaderParamsObject,
                ResponseHeaderMetaInputObject,
                BodyType,
                IsArray,
            >,
        >,
    ) => Promise<
        HttpClientResponseForBodyType<
            T,
            HeaderMetaObjectToParamsObject<
                HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
            >,
            BodyType,
            IsArray,
        >,
    >;
    patch: <
        T extends object,
        QueryParamsObject extends
            Record<string, unknown> = Record<string, undefined | string>,
        HeaderParamsObject extends
            Record<string, HttpClientHeaderValue> = Partial<
            Record<KnownHeader, HttpClientHeaderValue>,
        >,
        ResponseHeaderMetaInputObject extends
            Record<string, HeaderParamMetadataInput> = Record<
            string,
            HeaderParamMetadataInput,
        >,
        BodyType extends JSON
        | FORM_DATA = JSON,
        IsArray extends boolean = false,
    >(
        url: string,
        body: unknown,
        options?: Partial<
            HttpOptions<
                T,
                QueryParamsObject,
                HeaderParamsObject,
                ResponseHeaderMetaInputObject,
                BodyType,
                IsArray,
            >,
        >,
    ) => Promise<
        HttpClientResponseForBodyType<
            T,
            HeaderMetaObjectToParamsObject<
                HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
            >,
            BodyType,
            IsArray,
        >,
    >;
    post: <
        T extends object,
        QueryParamsObject extends
            Record<string, unknown> = Record<string, undefined | string>,
        HeaderParamsObject extends
            Record<string, HttpClientHeaderValue> = Partial<
            Record<KnownHeader, HttpClientHeaderValue>,
        >,
        ResponseHeaderMetaInputObject extends
            Record<string, HeaderParamMetadataInput> = Record<
            string,
            HeaderParamMetadataInput,
        >,
        BodyType extends JSON
        | FORM_DATA = JSON,
        IsArray extends boolean = false,
    >(
        url: string,
        body: unknown,
        options?: Partial<
            HttpOptions<
                T,
                QueryParamsObject,
                HeaderParamsObject,
                ResponseHeaderMetaInputObject,
                BodyType,
                IsArray,
            >,
        >,
    ) => Promise<
        HttpClientResponseForBodyType<
            T,
            HeaderMetaObjectToParamsObject<
                HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
            >,
            BodyType,
            IsArray,
        >,
    >;
    put: <
        T extends object,
        QueryParamsObject extends
            Record<string, unknown> = Record<string, undefined | string>,
        HeaderParamsObject extends
            Record<string, HttpClientHeaderValue> = Partial<
            Record<KnownHeader, HttpClientHeaderValue>,
        >,
        ResponseHeaderMetaInputObject extends
            Record<string, HeaderParamMetadataInput> = Record<
            string,
            HeaderParamMetadataInput,
        >,
        BodyType extends JSON
        | FORM_DATA = JSON,
        IsArray extends boolean = false,
    >(
        url: string,
        body: unknown,
        options?: Partial<
            HttpOptions<
                T,
                QueryParamsObject,
                HeaderParamsObject,
                ResponseHeaderMetaInputObject,
                BodyType,
                IsArray,
            >,
        >,
    ) => Promise<
        HttpClientResponseForBodyType<
            T,
            HeaderMetaObjectToParamsObject<
                HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
            >,
            BodyType,
            IsArray,
        >,
    >;
    request: <
        T extends object,
        QueryParamsObject extends Record<string, unknown>,
        HeaderParamsObject extends Record<string, HttpClientHeaderValue>,
        ResponseHeaderMetaInputObject extends
            Record<string, HeaderParamMetadataInput>,
        BodyType extends JSON
        | FORM_DATA,
        IsArray extends boolean,
    >(
        method: HttpMethod,
        url: string,
        requestBody: unknown,
        options:
            | undefined
            | Partial<
                HttpOptions<
                    T,
                    QueryParamsObject,
                    HeaderParamsObject,
                    ResponseHeaderMetaInputObject,
                    BodyType,
                    IsArray,
                >,
            >,
    ) => Promise<
        HttpClientResponseForBodyType<
            T,
            HeaderMetaObjectToParamsObject<
                HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
            >,
            BodyType,
            IsArray,
        >,
    >;
}

Implemented by

Properties

delete: <
    T extends object,
    QueryParamsObject extends
        Record<string, unknown> = Record<string, undefined | string>,
    HeaderParamsObject extends
        Record<string, HttpClientHeaderValue> = Partial<
        Record<KnownHeader, HttpClientHeaderValue>,
    >,
    ResponseHeaderMetaInputObject extends
        Record<string, HeaderParamMetadataInput> = Record<
        string,
        HeaderParamMetadataInput,
    >,
    BodyType extends JSON
    | FORM_DATA = JSON,
    IsArray extends boolean = false,
>(
    url: string,
    options?: Partial<
        HttpOptions<
            T,
            QueryParamsObject,
            HeaderParamsObject,
            ResponseHeaderMetaInputObject,
            BodyType,
            IsArray,
        >,
    >,
) => Promise<
    HttpClientResponseForBodyType<
        T,
        HeaderMetaObjectToParamsObject<
            HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
        >,
        BodyType,
        IsArray,
    >,
>

Sends a http delete request.

get: <
    T extends object,
    QueryParamsObject extends
        Record<string, unknown> = Record<string, undefined | string>,
    HeaderParamsObject extends
        Record<string, HttpClientHeaderValue> = Partial<
        Record<KnownHeader, HttpClientHeaderValue>,
    >,
    ResponseHeaderMetaInputObject extends
        Record<string, HeaderParamMetadataInput> = Record<
        string,
        HeaderParamMetadataInput,
    >,
    BodyType extends JSON
    | FORM_DATA = JSON,
    IsArray extends boolean = false,
>(
    url: string,
    options?: Partial<
        HttpOptions<
            T,
            QueryParamsObject,
            HeaderParamsObject,
            ResponseHeaderMetaInputObject,
            BodyType,
            IsArray,
        >,
    >,
) => Promise<
    HttpClientResponseForBodyType<
        T,
        HeaderMetaObjectToParamsObject<
            HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
        >,
        BodyType,
        IsArray,
    >,
>

Sends a http get request.

patch: <
    T extends object,
    QueryParamsObject extends
        Record<string, unknown> = Record<string, undefined | string>,
    HeaderParamsObject extends
        Record<string, HttpClientHeaderValue> = Partial<
        Record<KnownHeader, HttpClientHeaderValue>,
    >,
    ResponseHeaderMetaInputObject extends
        Record<string, HeaderParamMetadataInput> = Record<
        string,
        HeaderParamMetadataInput,
    >,
    BodyType extends JSON
    | FORM_DATA = JSON,
    IsArray extends boolean = false,
>(
    url: string,
    body: unknown,
    options?: Partial<
        HttpOptions<
            T,
            QueryParamsObject,
            HeaderParamsObject,
            ResponseHeaderMetaInputObject,
            BodyType,
            IsArray,
        >,
    >,
) => Promise<
    HttpClientResponseForBodyType<
        T,
        HeaderMetaObjectToParamsObject<
            HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
        >,
        BodyType,
        IsArray,
    >,
>

Sends a http patch request.

post: <
    T extends object,
    QueryParamsObject extends
        Record<string, unknown> = Record<string, undefined | string>,
    HeaderParamsObject extends
        Record<string, HttpClientHeaderValue> = Partial<
        Record<KnownHeader, HttpClientHeaderValue>,
    >,
    ResponseHeaderMetaInputObject extends
        Record<string, HeaderParamMetadataInput> = Record<
        string,
        HeaderParamMetadataInput,
    >,
    BodyType extends JSON
    | FORM_DATA = JSON,
    IsArray extends boolean = false,
>(
    url: string,
    body: unknown,
    options?: Partial<
        HttpOptions<
            T,
            QueryParamsObject,
            HeaderParamsObject,
            ResponseHeaderMetaInputObject,
            BodyType,
            IsArray,
        >,
    >,
) => Promise<
    HttpClientResponseForBodyType<
        T,
        HeaderMetaObjectToParamsObject<
            HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
        >,
        BodyType,
        IsArray,
    >,
>

Sends a http post request.

put: <
    T extends object,
    QueryParamsObject extends
        Record<string, unknown> = Record<string, undefined | string>,
    HeaderParamsObject extends
        Record<string, HttpClientHeaderValue> = Partial<
        Record<KnownHeader, HttpClientHeaderValue>,
    >,
    ResponseHeaderMetaInputObject extends
        Record<string, HeaderParamMetadataInput> = Record<
        string,
        HeaderParamMetadataInput,
    >,
    BodyType extends JSON
    | FORM_DATA = JSON,
    IsArray extends boolean = false,
>(
    url: string,
    body: unknown,
    options?: Partial<
        HttpOptions<
            T,
            QueryParamsObject,
            HeaderParamsObject,
            ResponseHeaderMetaInputObject,
            BodyType,
            IsArray,
        >,
    >,
) => Promise<
    HttpClientResponseForBodyType<
        T,
        HeaderMetaObjectToParamsObject<
            HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
        >,
        BodyType,
        IsArray,
    >,
>

Sends a http put request.

request: <
    T extends object,
    QueryParamsObject extends Record<string, unknown>,
    HeaderParamsObject extends Record<string, HttpClientHeaderValue>,
    ResponseHeaderMetaInputObject extends
        Record<string, HeaderParamMetadataInput>,
    BodyType extends JSON
    | FORM_DATA,
    IsArray extends boolean,
>(
    method: HttpMethod,
    url: string,
    requestBody: unknown,
    options:
        | undefined
        | Partial<
            HttpOptions<
                T,
                QueryParamsObject,
                HeaderParamsObject,
                ResponseHeaderMetaInputObject,
                BodyType,
                IsArray,
            >,
        >,
) => Promise<
    HttpClientResponseForBodyType<
        T,
        HeaderMetaObjectToParamsObject<
            HeaderMetaInputObjectToMetaObject<ResponseHeaderMetaInputObject>,
        >,
        BodyType,
        IsArray,
    >,
>

Sends a request with the given data.