mirror of
https://github.com/transloadit/uppy.git
synced 2026-01-23 10:25:33 +00:00
fixes #6024. ### Problem - `getPlugin()` defaults to `UnknownPlugin`, so methods like `openModal` are not visible , since core is not aware of that plugin type ### Proposed change - Introduce a types-only registry in core: - `export interface PluginTypeRegistry<M extends Meta, B extends Body> {}` - Overload `getPlugin` to return a precise type when the id is a known key of the registry. - add `Dashboard` to PluginTypeRegistry through module augmentation: - `'Dashboard': Dashboard<M, B>`. - When a project imports from `@uppy/dashboard`, its module augmentation extends PluginTypeRegistry, adding the correct type into it - I've added Tests , kept them in a separate file so it's easier to review , once this approach gets approved I'll add them to `Uppy.test.ts` Once this PR gets a positive review I'll add this for other plugins , currently only added for `@uppy/dashboard` **Build with Local tarball can be checked here** https://stackblitz.com/~/github.com/qxprakash/uppy-type-test?file=type_test.ts |
||
|---|---|---|
| .. | ||
| headless | ||
| Dashboard.ts | ||
| DashboardModal.ts | ||
| getHTMLProps.ts | ||
| index.ts | ||
| nonHtmlPropsHaveChanged.ts | ||
| StatusBar.ts | ||
| useDropzone.ts | ||
| useFileInput.ts | ||
| useRemoteSource.ts | ||
| useScreenCapture.ts | ||
| useUppyEvent.test.ts | ||
| useUppyEvent.ts | ||
| useUppyState.test.tsx | ||
| useUppyState.ts | ||
| useWebcam.ts | ||