瀏覽代碼

@uppy/xhr-upload: correctly type xhrUpload meta (#5344)

Merlijn Vos 9 月之前
父節點
當前提交
c7dcdb1046
共有 2 個文件被更改,包括 23 次插入18 次删除
  1. 9 2
      packages/@uppy/xhr-upload/src/index.test.ts
  2. 14 16
      packages/@uppy/xhr-upload/src/index.ts

+ 9 - 2
packages/@uppy/xhr-upload/src/index.test.ts

@@ -31,13 +31,20 @@ describe('XHRUpload', () => {
       onBeforeRequest,
       onAfterResponse,
     })
-    core.addFile({
+    const id = core.addFile({
       type: 'image/png',
       source: 'test',
       name: 'test.jpg',
       data: new Blob([new Uint8Array(8192)]),
     })
 
+    core.setFileState(id, {
+      xhrUpload: {
+        // Test that we don't have a TS error for setting endpoint
+        // on metadata
+        endpoint: 'https://fake-endpoint.uppy.io',
+      },
+    })
     return core.upload().then(() => {
       expect(shouldRetry).toHaveBeenCalledTimes(1)
       expect(onAfterResponse).toHaveBeenCalledTimes(2)
@@ -60,7 +67,7 @@ describe('XHRUpload', () => {
         id: 'XHRUpload',
         endpoint: 'https://fake-endpoint.uppy.io',
         headers: (file) => ({
-          'x-sample-header': file.name,
+          'x-sample-header': file.name!,
         }),
       })
       core.addFile({

+ 14 - 16
packages/@uppy/xhr-upload/src/index.ts

@@ -25,22 +25,6 @@ import getAllowedMetaFields from '@uppy/utils/lib/getAllowedMetaFields'
 import packageJson from '../package.json'
 import locale from './locale.ts'
 
-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
-    xhrUpload?: { headers: Record<string, string> }
-  }
-}
-
-declare module '@uppy/core' {
-  // eslint-disable-next-line no-shadow, @typescript-eslint/no-unused-vars
-  export interface State<M extends Meta, B extends Body> {
-    // TODO: figure out what else is in this type
-    xhrUpload?: { headers: Record<string, string> }
-  }
-}
-
 export interface XhrUploadOpts<M extends Meta, B extends Body>
   extends PluginOpts {
   endpoint: string
@@ -75,6 +59,20 @@ export interface XhrUploadOpts<M extends Meta, B extends Body>
   bundle?: boolean
 }
 
+declare module '@uppy/utils/lib/UppyFile' {
+  // eslint-disable-next-line no-shadow
+  export interface UppyFile<M extends Meta, B extends Body> {
+    xhrUpload?: XhrUploadOpts<M, B>
+  }
+}
+
+declare module '@uppy/core' {
+  // eslint-disable-next-line no-shadow
+  export interface State<M extends Meta, B extends Body> {
+    xhrUpload?: XhrUploadOpts<M, B>
+  }
+}
+
 function buildResponseError(
   xhr: XMLHttpRequest,
   err?: string | Error | NetworkError,