diff options
| author | Li Zhineng <[email protected]> | 2025-07-23 21:15:21 +0800 |
|---|---|---|
| committer | Li Zhineng <[email protected]> | 2025-07-23 21:15:21 +0800 |
| commit | b2584c0e805476a971d24e22350caf3875b42dd0 (patch) | |
| tree | 258f2679b2d2aa85802ee6284e5faf0ad45f562b /src/index.ts | |
| parent | 2f6bfbcaff5b35d9fd14563f1e2892dbf040646e (diff) | |
| download | wave-b2584c0e805476a971d24e22350caf3875b42dd0.tar.gz wave-b2584c0e805476a971d24e22350caf3875b42dd0.zip | |
test types
Diffstat (limited to 'src/index.ts')
| -rw-r--r-- | src/index.ts | 25 |
1 files changed, 17 insertions, 8 deletions
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<string, string> type HttpMethod = WechatMiniprogram.RequestOption['method'] type RequestTask = WechatMiniprogram.RequestTask | WechatMiniprogram.UploadTask type RequestData = Record<string, unknown> -type ResponseData = WechatMiniprogram.RequestSuccessCallbackResult['data'] +type ResponseData = + | WechatMiniprogram.RequestSuccessCallbackResult['data'] + | WechatMiniprogram.UploadFileSuccessCallbackResult['data'] type MiddlewareNext<T extends ResponseData> = ( request: PendingRequest ) => RequestPromise<Response<SuccessCallbackResult<T>, T>> @@ -87,7 +89,7 @@ class PendingRequest { #data: RequestData = {} - #middlewares: Middleware<any>[] = [] + #middlewares: Middleware<ResponseData>[] = [] 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<T extends ResponseData>(): RequestPromise< - Response<SuccessCallbackResult<T>, T> - > { - return this.#throughMiddlewares<T>(this)(this.#dispatchRequest<T>) + #send<T extends ResponseData>() { + return this.#throughMiddlewares<T>(this)( + this.#dispatchRequest<T> + ) as RequestPromise< + Response<WechatMiniprogram.RequestSuccessCallbackResult<T>, T> + > } #dispatchRequest<T extends ResponseData>(request: PendingRequest) { @@ -274,7 +283,7 @@ class PendingRequest { return (handler: MiddlewareNext<T>) => this.#middlewares.reduceRight( (next: MiddlewareNext<T>, middleware) => (request: PendingRequest) => - middleware(request, next), + (middleware as Middleware<T>)(request, next), handler )(request) } |
