소스 검색

Fix type import cycles

Renée Kooi 6 년 전
부모
커밋
007195355a
2개의 변경된 파일46개의 추가작업 그리고 34개의 파일을 삭제
  1. 5 28
      packages/@uppy/core/types/index.d.ts
  2. 41 6
      packages/@uppy/utils/types/index.d.ts

+ 5 - 28
packages/@uppy/core/types/index.d.ts

@@ -1,36 +1,13 @@
+import UppyUtils = require('@uppy/utils');
+
 declare module Uppy {
 declare module Uppy {
+  // This is defined in @uppy/utils instead of core so it can be used there without creating import cycles
+  export type UppyFile<TMeta extends IndexedObject<any> = {}> = UppyUtils.UppyFile<TMeta>;
+
   interface IndexedObject<T> {
   interface IndexedObject<T> {
     [key: string]: T;
     [key: string]: T;
     [key: number]: T;
     [key: number]: T;
   }
   }
-  interface UppyFile<TMeta extends IndexedObject<any> = {}> {
-    data: Blob | File;
-    extension: string;
-    id: string;
-    isPaused?: boolean;
-    isRemote: boolean;
-    meta: {
-      name: string;
-      type?: string;
-    } & TMeta;
-    name: string;
-    preview?: string;
-    progress?: {
-      uploadStarted: number;
-      uploadComplete: boolean;
-      percentage: number;
-      bytesUploaded: number;
-      bytesTotal: number;
-    };
-    remote?: {
-      host: string;
-      url: string;
-      body?: object;
-    };
-    size: number;
-    source?: string;
-    type?: string;
-  }
 
 
   interface UploadedUppyFile<TMeta extends IndexedObject<any> = {}> extends UppyFile<TMeta> {
   interface UploadedUppyFile<TMeta extends IndexedObject<any> = {}> extends UppyFile<TMeta> {
     uploadURL: string;
     uploadURL: string;

+ 41 - 6
packages/@uppy/utils/types/index.d.ts

@@ -26,7 +26,7 @@ declare module '@uppy/utils/lib/dataURItoFile' {
 }
 }
 
 
 declare module '@uppy/utils/lib/emitSocketProgress' {
 declare module '@uppy/utils/lib/emitSocketProgress' {
-  import Uppy = require('@uppy/core');
+  import UppyUtils = require('@uppy/utils');
 
 
   interface ProgressData {
   interface ProgressData {
     progress: number;
     progress: number;
@@ -34,7 +34,7 @@ declare module '@uppy/utils/lib/emitSocketProgress' {
     bytesTotal: number;
     bytesTotal: number;
   }
   }
 
 
-  export default function emitSocketProgress(uploader: object, progressData: ProgressData, file: Uppy.UppyFile): void;
+  export default function emitSocketProgress(uploader: object, progressData: ProgressData, file: UppyUtils.UppyFile): void;
 }
 }
 
 
 declare module '@uppy/utils/lib/findAllDOMElements' {
 declare module '@uppy/utils/lib/findAllDOMElements' {
@@ -46,9 +46,9 @@ declare module '@uppy/utils/lib/findDOMElement' {
 }
 }
 
 
 declare module '@uppy/utils/lib/generateFileID' {
 declare module '@uppy/utils/lib/generateFileID' {
-  import Uppy = require('@uppy/core');
+  import UppyUtils = require('@uppy/utils');
 
 
-  export default function generateFileID(file: Uppy.UppyFile): string;
+  export default function generateFileID(file: UppyUtils.UppyFile): string;
 }
 }
 
 
 declare module '@uppy/utils/lib/getBytesRemaining' {
 declare module '@uppy/utils/lib/getBytesRemaining' {
@@ -64,9 +64,9 @@ declare module '@uppy/utils/lib/getFileNameAndExtension' {
 }
 }
 
 
 declare module '@uppy/utils/lib/getFileType' {
 declare module '@uppy/utils/lib/getFileType' {
-  import Uppy = require('@uppy/core');
+  import UppyUtils = require('@uppy/utils');
 
 
-  export default function getFileType(file: Uppy.UppyFile): string | null;
+  export default function getFileType(file: UppyUtils.UppyFile): string | null;
 }
 }
 
 
 declare module '@uppy/utils/lib/getFileTypeExtension' {
 declare module '@uppy/utils/lib/getFileTypeExtension' {
@@ -129,3 +129,38 @@ declare module '@uppy/utils/lib/toArray' {
 declare module '@uppy/utils/lib/getDroppedFiles' {
 declare module '@uppy/utils/lib/getDroppedFiles' {
   export default function getDroppedFiles(dataTransfer: DataTransfer): Promise<File[]>;
   export default function getDroppedFiles(dataTransfer: DataTransfer): Promise<File[]>;
 }
 }
+
+declare module '@uppy/utils' {
+  interface IndexedObject<T> {
+    [key: string]: T;
+    [key: number]: T;
+  }
+  export interface UppyFile<TMeta extends IndexedObject<any> = {}> {
+    data: Blob | File;
+    extension: string;
+    id: string;
+    isPaused?: boolean;
+    isRemote: boolean;
+    meta: {
+      name: string;
+      type?: string;
+    } & TMeta;
+    name: string;
+    preview?: string;
+    progress?: {
+      uploadStarted: number;
+      uploadComplete: boolean;
+      percentage: number;
+      bytesUploaded: number;
+      bytesTotal: number;
+    };
+    remote?: {
+      host: string;
+      url: string;
+      body?: object;
+    };
+    size: number;
+    source?: string;
+    type?: string;
+  }
+}