From b2584c0e805476a971d24e22350caf3875b42dd0 Mon Sep 17 00:00:00 2001 From: Li Zhineng Date: Wed, 23 Jul 2025 21:15:21 +0800 Subject: test types --- src/index.ts | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'src/index.ts') diff --git a/src/index.ts b/src/index.ts index 04a1870..de0ad68 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,7 +3,9 @@ type QueryString = Record type HttpMethod = WechatMiniprogram.RequestOption['method'] type RequestTask = WechatMiniprogram.RequestTask | WechatMiniprogram.UploadTask type RequestData = Record -type ResponseData = WechatMiniprogram.RequestSuccessCallbackResult['data'] +type ResponseData = + | WechatMiniprogram.RequestSuccessCallbackResult['data'] + | WechatMiniprogram.UploadFileSuccessCallbackResult['data'] type MiddlewareNext = ( request: PendingRequest ) => RequestPromise, T>> @@ -87,7 +89,7 @@ class PendingRequest { #data: RequestData = {} - #middlewares: Middleware[] = [] + #middlewares: Middleware[] = [] method(method: HttpMethod) { const request = this.#clone() @@ -192,7 +194,12 @@ class PendingRequest { return this.#throughMiddlewares(request)( this.#dispatchUpload(option.name, option.filePath) - ) + ) as RequestPromise< + Response< + WechatMiniprogram.UploadFileSuccessCallbackResult, + WechatMiniprogram.UploadFileSuccessCallbackResult['data'] + > + > } #dispatchUpload(name: string, filePath: string) { @@ -232,10 +239,12 @@ class PendingRequest { } } - #send(): RequestPromise< - Response, T> - > { - return this.#throughMiddlewares(this)(this.#dispatchRequest) + #send() { + return this.#throughMiddlewares(this)( + this.#dispatchRequest + ) as RequestPromise< + Response, T> + > } #dispatchRequest(request: PendingRequest) { @@ -274,7 +283,7 @@ class PendingRequest { return (handler: MiddlewareNext) => this.#middlewares.reduceRight( (next: MiddlewareNext, middleware) => (request: PendingRequest) => - middleware(request, next), + (middleware as Middleware)(request, next), handler )(request) } -- cgit v1.2.3