From 3b401b84f1c0cb7ec7349554329a7b5cf87206f4 Mon Sep 17 00:00:00 2001 From: 13659257719 <819781841@qq.com> Date: Tue, 31 Oct 2023 15:58:17 +0800 Subject: [PATCH] =?UTF-8?q?[inula-request]=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AF=B9=E5=A4=96=E7=B1=BB=E5=9E=8B=20IrInstance=20=E5=92=8C?= =?UTF-8?q?=20IrProgressEvent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/inula-request/index.ts | 2 +- .../src/request/processDownloadProgress.ts | 8 +++++++- .../src/request/processUploadProgress.ts | 6 +++--- packages/inula-request/src/types/interfaces.ts | 15 +++++++++++++++ 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/inula-request/index.ts b/packages/inula-request/index.ts index 464cdd8b..85ca6ff4 100644 --- a/packages/inula-request/index.ts +++ b/packages/inula-request/index.ts @@ -68,7 +68,7 @@ export { isAxiosError, }; -export type { IrRequestConfig, IrResponse, IrInstance, CancelTokenSource } from './src/types/interfaces'; +export type { IrRequestConfig, IrResponse, IrInstance, CancelTokenSource, IrProgressEvent } from './src/types/interfaces'; export type { Method, ResponseType } from './src/types/types'; export default inulaRequest; diff --git a/packages/inula-request/src/request/processDownloadProgress.ts b/packages/inula-request/src/request/processDownloadProgress.ts index 5e2ea808..58b211a3 100644 --- a/packages/inula-request/src/request/processDownloadProgress.ts +++ b/packages/inula-request/src/request/processDownloadProgress.ts @@ -13,7 +13,13 @@ * See the Mulan PSL v2 for more details. */ -function processDownloadProgress(stream: ReadableStream | null, response: Response, onProgress: Function | null) { +import { IrProgressEvent } from '../types/interfaces'; + +function processDownloadProgress( + stream: ReadableStream | null, + response: Response, + onProgress: (progressEvent: IrProgressEvent) => void | null +) { // 文件下载过程中更新进度 if (onProgress) { const reader = stream?.getReader(); diff --git a/packages/inula-request/src/request/processUploadProgress.ts b/packages/inula-request/src/request/processUploadProgress.ts index 4f5299a9..0ee4bea9 100644 --- a/packages/inula-request/src/request/processUploadProgress.ts +++ b/packages/inula-request/src/request/processUploadProgress.ts @@ -13,11 +13,11 @@ * See the Mulan PSL v2 for more details. */ -import { IrRequestConfig, IrResponse } from '../types/interfaces'; -import IrError from "../core/IrError"; +import { IrProgressEvent, IrRequestConfig, IrResponse } from '../types/interfaces'; +import IrError from '../core/IrError'; function processUploadProgress( - onUploadProgress: Function | null, + onUploadProgress: (progressEvent: IrProgressEvent) => void | null, data: FormData, reject: (reason?: any) => void, resolve: (value: PromiseLike> | IrResponse) => void, diff --git a/packages/inula-request/src/types/interfaces.ts b/packages/inula-request/src/types/interfaces.ts index 146cc773..ce4d2dc6 100644 --- a/packages/inula-request/src/types/interfaces.ts +++ b/packages/inula-request/src/types/interfaces.ts @@ -125,6 +125,9 @@ export interface IrInterface { // Ir 实例接口类型 export interface IrInstance extends IrInterface { + >(config: IrRequestConfig): Promise; + >(url: string, config?: IrRequestConfig): Promise; + // Ir 类 InulaRequest: IrInterface; @@ -177,6 +180,18 @@ export interface IrInstance extends IrInterface { AxiosHeaders: any; } +export interface IrProgressEvent { + loaded: string | number; + total?: string | number | null; + progress?: number; + bytes?: number; + rate?: number; + estimated?: number; + upload?: boolean; + download?: boolean; + event?: any; +} + export interface Interceptors { request: IrInterceptorManager; response: IrInterceptorManager;