Преглед изворни кода

@uppy/utils: fix `AbortablePromise` type (#4988)

Antoine du Hamel пре 1 година
родитељ
комит
70ca9e6f01
1 измењених фајлова са 7 додато и 3 уклоњено
  1. 7 3
      packages/@uppy/utils/src/RateLimitedQueue.ts

+ 7 - 3
packages/@uppy/utils/src/RateLimitedQueue.ts

@@ -30,11 +30,15 @@ type QueueOptions = {
   priority?: number
 }
 
-interface AbortablePromise<T> extends Promise<T> {
+export interface AbortablePromise<T> extends Promise<T> {
   abort(cause?: unknown): void
-  abortOn: typeof abortOn
+  abortOn: (...args: Parameters<typeof abortOn>) => AbortablePromise<T>
 }
 
+export type WrapPromiseFunctionType<T extends (...args: any[]) => any> = (
+  ...args: Parameters<T>
+) => AbortablePromise<Awaited<ReturnType<T>>>
+
 export class RateLimitedQueue {
   #activeRequests = 0
 
@@ -223,7 +227,7 @@ export class RateLimitedQueue {
       outerPromise.abort = (cause) => {
         queuedRequest.abort(cause)
       }
-      outerPromise.abortOn = abortOn
+      outerPromise.abortOn = abortOn as any
 
       return outerPromise
     }