UNPKG

imba-uni-request

Version:

uniapp框架封装的请求包 imba-uni-request

140 lines (139 loc) 3.88 kB
import type { options_DTYPE, RequestConfig_DTYPE, METHOD_DTYPE, Inject_DTYPE } from './types/imba-uni-request'; import type { InterceptorsImpl_DTYPE } from './types/imba-uni-interceptor'; export declare class ImbaUniRequest { /** * `baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。 * 它可以通过设置一个 `baseURL` 便于为实例的方法传递相对 URL */ private baseURL; /** * 超时时间,单位毫秒 * 默认 30s = 1000 * 30 */ private timeout; /** * 设置请求的 header,header 中不能设置 Referer。 * 平台差异说明:App、H5端会自动带上cookie,且H5端不可手动修改 */ private header; private headers; /** * 记录请求过的地址 * { [url]: Promise } */ private recordUrl; /** * 请求拦截和响应拦截执行器 */ interceptors: InterceptorsImpl_DTYPE; /** * 缓存&SWR 是否开启 * 默认 true */ private cacheBool; /** * 缓存&SWR 缓存单位 mm | ss * 默认 mm */ private cacheUnit; /** * 是否重复请求合并 * 默认 true */ private repeatMergeBool; /** * 是否请求错误后重试 * 默认 true */ private retryBool; /** * 请求重试错误次数 * 默认 1 */ private retryCount; /** * 重试内时间定位 单位秒 在此时间内做错误重试请求 * 默认 3 */ private retryInterval; /** * 请求地址追加次数统计 [{ '地址': [重试的次数,初次重试的时间] }] */ private retryUrlCount; /** * 分页key */ private pageKey; /** * 打印API接口地址是否MD5化 */ private printMD5; /** * 是否开启打印请求数据 */ private printConsole; constructor(option: options_DTYPE); setObjectVal(obj: Object): this; /** * 默认拦截处理 */ private defaultInterceptor; /** * 格式化功能性配置项 * @param config * @returns */ private dataFactory; private clone; /** * 计算剩余缓存时间 * @param key * @returns */ private comCacheStrify; /** * 设置当前页,页面数 * @param cur [当前页,页面数] * @returns */ private setPageSize; /** * @param api 接口地址 | [接口地址, 请求类型] | [接口地址, 请求类型, 缓存时间(默认分单位)] * @param inject 注入配置 * @param axiosOptions axios配置 * @returns Promise */ request<T = any>(api: string | [string, METHOD_DTYPE] | [string, METHOD_DTYPE, number], inject?: Inject_DTYPE, uniOptions?: Partial<UniNamespace.RequestOptions>): Promise<T>; /** * GET请求 * @param apiUrl 接口地址 * @param inject 注入配置 * @param options axios配置 * @returns Promise */ get<T = any>(apiUrl: string, inject?: Inject_DTYPE, options?: RequestConfig_DTYPE): Promise<T>; /** * POST请求 * @param apiUrl 接口地址 * @param inject 注入配置 * @param options axios配置 * @returns Promise */ post<T = any>(apiUrl: string, inject?: Inject_DTYPE, options?: RequestConfig_DTYPE): Promise<T>; /** * PUT请求 * @param apiUrl 接口地址 * @param inject 注入配置 * @param options axios配置 * @returns Promise */ put<T = any>(apiUrl: string, inject?: Inject_DTYPE, options?: RequestConfig_DTYPE): Promise<T>; /** * DELETE请求 * @param apiUrl 接口地址 * @param inject 注入配置 * @param options axios配置 * @returns Promise */ delete<T = any>(apiUrl: string, inject?: Inject_DTYPE, options?: RequestConfig_DTYPE): Promise<T>; }