import * as process from "process" import {Task} from "./task" import {TaskQueue} from "./taskQueue" import {FetchAdapter, FetchAdapterResponse} from "./fetchAdapter" import {NextNetwork} from "./nextNetwork" import {BaseError} from "./errors/baseError"; import {HttpStatusError} from "./errors/httpStatusError"; import {ResponseHelpers} from "./utils/responseHelpers"; //解决node环境下esmodule模式导入失败问题 const {browser} = process /** * ## 暴露的接口方法对象 * ## {Task, TaskQueue, FetchAdapter, NextNetwork, FetchAdapterResponse, BaseError, HttpStatusError} * 1. Task **任务实体**
* 作用:定义了一个任务实体上应该有的方法 * 2. TaskQueue **任务队列管理**
* 作用:管理每个任务的执行状态和重试报错等机制 * 3. FetchAdapter **http适配器**
* 作用:请求请求接口数据的方法 可以根据自己的实际情况继承适配器再作修改 * 4. NextNetwork **网络管理器**
* 作用:对任务队列和http适配器集中调度 * 5. FetchAdapterResponse **http响应体**
* 作用:统一的响应体结构 * 6. BaseError **基础错误类**
* 作用:错误信息继承的基础对象 * 7. HttpStatusError **http code 错误**
* 作用:默认 http status 不在 successStatusCode 列表里面 则会报错 * 8. ResponseHelpers **response工具类**
* 作用:提供一些Response辅助的工具类 * **/ const index: { Task: Task, TaskQueue: TaskQueue, FetchAdapter: FetchAdapter, NextNetwork: NextNetwork, FetchAdapterResponse: FetchAdapterResponse, BaseError: BaseError, HttpStatusError: HttpStatusError, ResponseHelpers: ResponseHelpers // @ts-ignore } = {Task, TaskQueue, FetchAdapter, NextNetwork, FetchAdapterResponse, BaseError, HttpStatusError, ResponseHelpers} if (browser) { // @ts-ignore window.NextNetworkBrowser = index } export {Task, TaskQueue, FetchAdapter, NextNetwork, FetchAdapterResponse, BaseError, HttpStatusError, ResponseHelpers} export default index