mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-27 04:05:10 +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 |
||
|---|---|---|
| .. | ||
| DiscardButton.tsx | ||
| index.ts | ||
| locale.ts | ||
| RecordButton.tsx | ||
| RecorderScreen.tsx | ||
| ScreenCapture.tsx | ||
| ScreenRecIcon.tsx | ||
| ScreenshotButton.tsx | ||
| StopWatch.tsx | ||
| StreamStatus.tsx | ||
| style.scss | ||
| SubmitButton.tsx | ||