Explorar el Código

improve typedefinistion

taoqf hace 7 años
padre
commit
628baa28a4
Se han modificado 5 ficheros con 163 adiciones y 36 borrados
  1. 144 28
      types/index.d.ts
  2. 4 1
      types/tsconfig.json
  3. 1 0
      types/tslint.json
  4. 7 0
      types/uppy-tests-official.ts
  5. 7 7
      types/uppy-tests.ts

+ 144 - 28
types/index.d.ts

@@ -5,9 +5,143 @@
 
 // TypeScript Version: 2.3
 
-export as namespace Uppy;
+// export as namespace Uppy;
 
-export namespace Store {
+declare module 'uppy' {
+	export const Core: Core;
+	export const Dashboard: plugins.Dashboard;
+	export const DragDrop: plugins.DragDrop;
+	export const XHRUpload: plugins.XHRUpload;
+	export const GoogleDrive: plugins.GoogleDrive;
+	export const Instagram: plugins.Instagram;
+	export const Webcam: plugins.Webcam;
+	export const Tus: plugins.Tus;
+	export const StatusBar: plugins.StatusBar;
+	export const Url: plugins.Url;
+	export const Dropbox: plugins.Dropbox;
+	export const AwsS3: plugins.AwsS3;
+	export const GoldenRetriever: plugins.GoldenRetriever;
+	export const ThumbnailGenerator: plugins.ThumbnailGenerator;
+	export const Transloadit: plugins.Transloadit;
+	export const Dummy: plugins.Dummy;
+	export const FileInput: plugins.FileInput;
+	export const Form: plugins.Form;
+	export const Informer: plugins.Informer;
+	export const MagicLog: plugins.MagicLog;
+	export const ProgressBar: plugins.ProgressBar;
+	export const ReduxDevTools: plugins.ReduxDevTools;
+}
+
+declare module 'uppy/lib/core' {
+	export = Core;
+}
+
+declare module 'uppy/lib/plugins/Dashboard' {
+	const Dashboard: plugins.Dashboard;
+	export = Dashboard;
+}
+
+declare module 'uppy/lib/plugins/DragDrop' {
+	const DragDrop: plugins.DragDrop;
+	export = DragDrop;
+}
+
+declare module 'uppy/lib/plugins/XHRUpload' {
+	const XHRUpload: plugins.XHRUpload;
+	export = XHRUpload;
+}
+
+declare module 'uppy/lib/plugins/GoogleDrive' {
+	const GoogleDrive: plugins.GoogleDrive;
+	export = GoogleDrive;
+}
+
+declare module 'uppy/lib/plugins/Instagram' {
+	const Instagram: plugins.Instagram;
+	export = Instagram;
+}
+
+declare module 'uppy/lib/plugins/Webcam' {
+	const Webcam: plugins.Webcam;
+	export = Webcam;
+}
+
+declare module 'uppy/lib/plugins/Tus' {
+	const Tus: plugins.Tus;
+	export = Tus;
+}
+
+declare module 'uppy/lib/plugins/StatusBar' {
+	const StatusBar: plugins.StatusBar;
+	export = StatusBar;
+}
+
+declare module 'uppy/lib/plugins/Url' {
+	const Url: plugins.Url;
+	export = Url;
+}
+
+declare module 'uppy/lib/plugins/Dropbox' {
+	const Dropbox: plugins.Dropbox;
+	export = Dropbox;
+}
+
+declare module 'uppy/lib/plugins/AwsS3' {
+	const AwsS3: plugins.AwsS3;
+	export = AwsS3;
+}
+
+declare module 'uppy/lib/plugins/GoldenRetriever' {
+	const GoldenRetriever: plugins.GoldenRetriever;
+	export = GoldenRetriever;
+}
+
+declare module 'uppy/lib/plugins/ThumbnailGenerator' {
+	const ThumbnailGenerator: plugins.ThumbnailGenerator;
+	export = ThumbnailGenerator;
+}
+
+declare module 'uppy/lib/plugins/Transloadit' {
+	const Transloadit: plugins.Transloadit;
+	export = Transloadit;
+}
+
+declare module 'uppy/lib/plugins/Dummy' {
+	const Dummy: plugins.Dummy;
+	export = Dummy;
+}
+
+declare module 'uppy/lib/plugins/FileInput' {
+	const FileInput: plugins.FileInput;
+	export = FileInput;
+}
+
+declare module 'uppy/lib/plugins/Form' {
+	const Form: plugins.Form;
+	export = Form;
+}
+
+declare module 'uppy/lib/plugins/Informer' {
+	const Informer: plugins.Informer;
+	export = Informer;
+}
+
+declare module 'uppy/lib/plugins/MagicLog' {
+	const MagicLog: plugins.MagicLog;
+	export = MagicLog;
+}
+
+declare module 'uppy/lib/plugins/ProgressBar' {
+	const ProgressBar: plugins.ProgressBar;
+	export = ProgressBar;
+}
+
+declare module 'uppy/lib/plugins/ReduxDevTools' {
+	const ReduxDevTools: plugins.ReduxDevTools;
+	export = ReduxDevTools;
+}
+
+declare namespace Store {
 	// todo
 	type State = any;
 
@@ -25,7 +159,7 @@ export namespace Store {
 	type ReduxStore = Store;
 }
 
-export interface Local {
+declare interface Local {
 	strings: {
 		youCanOnlyUploadX: {
 			0: string;
@@ -44,7 +178,7 @@ export interface Local {
 	};
 }
 
-export namespace plugins {
+declare namespace plugins {
 	interface DashboardOptions extends core.CoreConfig {
 		onRequestCloseModal: () => any;
 		disablePageScrollWhenModalOpen: boolean;
@@ -308,29 +442,7 @@ export namespace plugins {
 	}
 }
 
-export const Dashboard: plugins.Dashboard;
-export const DragDrop: plugins.DragDrop;
-export const XHRUpload: plugins.XHRUpload;
-export const GoogleDrive: plugins.GoogleDrive;
-export const Instagram: plugins.Instagram;
-export const Webcam: plugins.Webcam;
-export const Tus: plugins.Tus;
-export const StatusBar: plugins.StatusBar;
-export const Url: plugins.Url;
-export const Dropbox: plugins.Dropbox;
-export const AwsS3: plugins.AwsS3;
-export const GoldenRetriever: plugins.GoldenRetriever;
-export const ThumbnailGenerator: plugins.ThumbnailGenerator;
-export const Transloadit: plugins.Transloadit;
-export const Dummy: plugins.Dummy;
-export const FileInput: plugins.FileInput;
-export const Form: plugins.Form;
-export const Informer: plugins.Informer;
-export const MagicLog: plugins.MagicLog;
-export const ProgressBar: plugins.ProgressBar;
-export const ReduxDevTools: plugins.ReduxDevTools;
-
-export namespace core {
+declare namespace core {
 	interface CoreConfig {
 		id: string;
 		autoProceed: boolean;
@@ -462,4 +574,8 @@ export namespace core {
 	}
 }
 
-export function Core(conf?: Partial<core.CoreConfig>): core.Uppy;
+interface Core {
+	(conf?: Partial<core.CoreConfig>): core.Uppy;
+}
+
+declare function Core(conf?: Partial<core.CoreConfig>): core.Uppy;

+ 4 - 1
types/tsconfig.json

@@ -15,11 +15,14 @@
 		],
 		"types": [],
 		"noEmit": true,
+		"esModuleInterop": true,
+		"allowSyntheticDefaultImports": true,
 		"strictFunctionTypes": true,
 		"forceConsistentCasingInFileNames": true
 	},
 	"files": [
 	"index.d.ts",
-	"uppy-tests.ts"
+	"uppy-tests.ts",
+	"uppy-tests-official.ts"
 	]
 }

+ 1 - 0
types/tslint.json

@@ -0,0 +1 @@
+{ "extends": "dtslint/dt.json" }

+ 7 - 0
types/uppy-tests-official.ts

@@ -0,0 +1,7 @@
+import Core from 'uppy/lib/core';
+import Dashboard from 'uppy/lib/plugins/Dashboard';
+
+(() => {
+	const uppy = Core();
+	uppy.use(Dashboard, {});
+})();

+ 7 - 7
types/uppy-tests.ts

@@ -1,4 +1,4 @@
-import Uppy = require('./');
+import Uppy = require('uppy');
 
 (() => {
 	const uppy = Uppy.Core({ autoProceed: false });
@@ -24,13 +24,13 @@ import Uppy = require('./');
 		.use(Uppy.Tus, { endpoint: 'https://master.tus.io/files/' })
 		.run()
 		.on('complete', (result) => {
-			console.log('Upload result:', result)
+			console.log('Upload result:', result);
 		});
 })();
 
 (() => {
-	var uppy = Uppy.Core()
-	uppy.use(Uppy.DragDrop, { target: '.UppyDragDrop' })
-	uppy.use(Uppy.Tus, { endpoint: '//master.tus.io/files/' })
-	uppy.run()
-})();
+	const uppy = Uppy.Core();
+	uppy.use(Uppy.DragDrop, { target: '.UppyDragDrop' });
+	uppy.use(Uppy.Tus, { endpoint: '//master.tus.io/files/' });
+	uppy.run();
+})();