Parcourir la source

@uppy/tus: correctly type tus on UppyFile (#5454)

* @uppy/tus: correctly type tus on UppyFile

* Fix @uppy/transloadit
Merlijn Vos il y a 7 mois
Parent
commit
23bf2298d8
2 fichiers modifiés avec 10 ajouts et 12 suppressions
  1. 2 3
      packages/@uppy/transloadit/src/index.ts
  2. 8 9
      packages/@uppy/tus/src/index.ts

+ 2 - 3
packages/@uppy/transloadit/src/index.ts

@@ -3,7 +3,7 @@ import ErrorWithCause from '@uppy/utils/lib/ErrorWithCause'
 import { RateLimitedQueue } from '@uppy/utils/lib/RateLimitedQueue'
 import BasePlugin from '@uppy/core/lib/BasePlugin.js'
 import type { DefinePluginOpts, PluginOpts } from '@uppy/core/lib/BasePlugin.js'
-import Tus, { type TusDetailedError } from '@uppy/tus'
+import Tus, { type TusDetailedError, type TusOpts } from '@uppy/tus'
 import type { Body, Meta, UppyFile } from '@uppy/utils/lib/UppyFile'
 import type { Uppy } from '@uppy/core'
 import Assembly from './Assembly.ts'
@@ -219,7 +219,7 @@ declare module '@uppy/utils/lib/UppyFile' {
   // eslint-disable-next-line no-shadow, @typescript-eslint/no-unused-vars
   export interface UppyFile<M extends Meta, B extends Body> {
     transloadit?: { assembly: string }
-    tus?: { uploadUrl?: string | null }
+    tus?: TusOpts<M, B>
   }
 }
 
@@ -936,7 +936,6 @@ export default class Transloadit<
       this.uppy.on('upload-success', this.#onFileUploadURLAvailable)
     } else {
       // we don't need it here.
-      // @ts-expect-error `endpoint` is required but we first have to fetch
       // the regional endpoint from the Transloadit API before we can set it.
       this.uppy.use(Tus, {
         // Disable tus-js-client fingerprinting, otherwise uploading the same file at different times

+ 8 - 9
packages/@uppy/tus/src/index.ts

@@ -24,14 +24,6 @@ import getFingerprint from './getFingerprint.ts'
 // @ts-ignore We don't want TS to generate types for the package.json
 import packageJson from '../package.json'
 
-declare module '@uppy/utils/lib/UppyFile' {
-  // eslint-disable-next-line no-shadow, @typescript-eslint/no-unused-vars
-  export interface UppyFile<M extends Meta, B extends Body> {
-    // TODO: figure out what else is in this type
-    tus?: { uploadUrl?: string | null }
-  }
-}
-
 type RestTusUploadOptions = Omit<
   tus.UploadOptions,
   'onShouldRetry' | 'onBeforeRequest' | 'headers'
@@ -42,7 +34,7 @@ export type TusDetailedError = tus.DetailedError
 export interface TusOpts<M extends Meta, B extends Body>
   extends PluginOpts,
     RestTusUploadOptions {
-  endpoint: string
+  endpoint?: string
   headers?:
     | Record<string, string>
     | ((file: UppyFile<M, B>) => Record<string, string>)
@@ -102,6 +94,13 @@ type Opts<M extends Meta, B extends Body> = DefinePluginOpts<
   keyof typeof defaultOptions
 >
 
+declare module '@uppy/utils/lib/UppyFile' {
+  // eslint-disable-next-line no-shadow, @typescript-eslint/no-unused-vars
+  export interface UppyFile<M extends Meta, B extends Body> {
+    tus?: TusOpts<M, B>
+  }
+}
+
 /**
  * Tus resumable file uploader
  */