UNPKG

@odata2ts/http-client-api

Version:

Specifies the contract between HTTP clients and odata2ts

73 lines (72 loc) 2.68 kB
import { ODataResponse } from "./ODataResponseModel"; /** * Retrieves the configuration type for the given HTTP client. */ export type ODataHttpClientConfig<ClientType extends ODataHttpClient> = ClientType extends ODataHttpClient<infer Config> ? Config : never; export interface ODataHttpClient<RequestConfig = any> { /** * Create a model or collection entry. * * @param url * @param data * @param requestConfig * @param additionalHeaders */ post<ResponseModel>(url: string, data: any, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ResponseModel>; get<ResponseModel>(url: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ResponseModel>; /** * Replace a model. * * @param url * @param data * @param requestConfig * @param additionalHeaders */ put<ResponseModel>(url: string, data: any, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ResponseModel>; /** * Partially update a model. * * @param url * @param data * @param requestConfig * @param additionalHeaders */ patch<ResponseModel>(url: string, data: any, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ResponseModel>; /** * Delete a model or collection. * * @param url * @param requestConfig * @param additionalHeaders */ delete(url: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<void>; /** * Get binary data (Edm.Stream) as Blob. * * @param url * @param requestConfig * @param additionalHeaders */ getBlob(url: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<Blob>; /** * Get binary data (Edm.Stream) as ReadableStream. * * Cannot be supported by HTTP clients based on XmlHttpRequest, e.g. axios. * Should throw an error in this case. * * @param url * @param requestConfig * @param additionalHeaders */ getStream(url: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ReadableStream>; /** * Updates binary data (Edm.Stream). * * @param url * @param data * @param mimeType * @param requestConfig * @param additionalHeaders */ updateBlob(url: string, data: Blob, mimeType: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<void | Blob>; }