UNPKG

bling-erp-api-with-rate-limit

Version:
39 lines (38 loc) 2.52 kB
import { AxiosInstance } from 'axios'; export type IDefaultParams = Record<string, number | number[] | string | string[] | boolean | Date | undefined>; export type IDefaultHeaders = Record<string, string>; export interface IDefaultOptions<IParams, IHeaders> { endpoint: string; params?: IParams; headers?: IHeaders; shouldIncludeHeadersInResponse?: true; } export interface IIndexOptions<IBody, IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> { body?: IBody; } export interface IShowOptions<IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> { id: string; } export interface IStoreOptions<IBody, IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> { body: IBody; } export interface IUpdateOptions<IBody, IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> { id: string; body: IBody; } export interface IReplaceOptions<IBody, IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> { id: string; body: IBody; } export interface IDestroyOptions<IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> { id: string; } export interface IBlingRepository { readonly axiosInstance: AxiosInstance; index: <IIndexBody, IIndexResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IIndexOptions<IIndexBody, IParams, IHeaders>) => Promise<IIndexResponse>; show: <IShowResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IShowOptions<IParams, IHeaders>) => Promise<IShowResponse>; store: <IStoreBody, IStoreResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IStoreOptions<IStoreBody, IParams, IHeaders>) => Promise<IStoreResponse>; update: <IUpdateBody, IUpdateResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IUpdateOptions<IUpdateBody, IParams, IHeaders>) => Promise<IUpdateResponse>; replace: <IReplaceBody, IReplaceResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IReplaceOptions<IReplaceBody, IParams, IHeaders>) => Promise<IReplaceResponse>; destroy: <IDestroyResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IDestroyOptions<IParams, IHeaders>) => Promise<IDestroyResponse>; }