optimize(request): enhance request options and response handling with generic types

This commit is contained in:
Soybean
2025-07-19 02:17:42 +08:00
parent d6c8142bb4
commit 50a5cba088
7 changed files with 110 additions and 77 deletions

View File

@ -4,12 +4,16 @@ import { stringify } from 'qs';
import { isHttpSuccess } from './shared';
import type { RequestOption } from './type';
export function createDefaultOptions<ResponseData = any>(options?: Partial<RequestOption<ResponseData>>) {
const opts: RequestOption<ResponseData> = {
export function createDefaultOptions<
ResponseData,
ApiData = ResponseData,
State extends Record<string, unknown> = Record<string, unknown>
>(options?: Partial<RequestOption<ResponseData, ApiData, State>>) {
const opts: RequestOption<ResponseData, ApiData, State> = {
onRequest: async config => config,
isBackendSuccess: _response => true,
onBackendFail: async () => {},
transformBackendResponse: async response => response.data,
transformBackendResponse: async response => response.data as unknown as ApiData,
onError: async () => {}
};