import { Middleware } from "@agito/onion-core/es/middlewareCreator/interface"; import type { Req } from "../Req"; import type { Res } from "../Res"; import { Result } from "../utils/result"; import { ABORT_CONTROLLER } from "../constants"; export type IResult = { code: number; data: Record | null | undefined; msg: string | null | undefined; }; export interface IOptions extends ReqInit { baseURL?: string; params?: Record; } export interface OverrideReqInit extends IOptions { url: string; body?: BodyInit; } export type IMiddleware = Middleware; export type IEnhanceMiddleware = Middleware; export type IResponseType = "json" | "arrayBuffer" | "blob" | "formData" | "text" | null | false; /** * 拓展默认的 ResponseInit 类型 * @host https://developer.mozilla.org/zh-CN/docs/Web/API/Response/Response */ export interface ResInit extends ResponseInit { responseType?: IResponseType; meta?: Record; throwHttpError?: boolean; timeout?: number; [ABORT_CONTROLLER]?: AbortController; body?: BodyInit | Record | null; } /** * 拓展默认的 RequestInit 类型 * @host https://developer.mozilla.org/zh-CN/docs/Web/API/Request/Request */ export interface ReqInit extends Omit { url?: string; responseType?: IResponseType; timeout?: number; throwHttpError?: boolean; [ABORT_CONTROLLER]?: AbortController; meta?: Record; body?: BodyInit | Record; originRequest?: ReqInit; debug?: boolean; }