Files
core/packages/api-client/interfaces/adapter.ts
2022-12-20 21:26:21 +08:00

37 lines
920 B
TypeScript

import { RequestOptions } from './instance'
export type IAdaptorRequestResponseType<P> = Promise<
Record<string, any> & { data: P }
>
export type IRequestAdapter<T = any, Response = undefined> = Readonly<
(Response extends undefined ? {} : { responseWrapper: Response }) & {
default: T
get<P = unknown>(
url: string,
options?: Omit<RequestOptions, 'data'>,
): IAdaptorRequestResponseType<P>
post<P = unknown>(
url: string,
options: Partial<RequestOptions>,
): IAdaptorRequestResponseType<P>
patch<P = unknown>(
url: string,
options: Partial<RequestOptions>,
): IAdaptorRequestResponseType<P>
delete<P = unknown>(
url: string,
options?: Omit<RequestOptions, 'data'>,
): IAdaptorRequestResponseType<P>
put<P = unknown>(
url: string,
options: Partial<RequestOptions>,
): IAdaptorRequestResponseType<P>
}
>