uppy/packages/@uppy/svelte
Prakash 79e6460a6c
Make Generics Optional in uppy.getPlugin (#6057)
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
2025-11-17 18:18:54 +05:30
..
src/lib Make Generics Optional in uppy.getPlugin (#6057) 2025-11-17 18:18:54 +05:30
.gitignore Headless components (#5727) 2025-05-22 09:59:43 +02:00
.npmignore @uppy/svelte: remove UMD output and make it use newer types (#5023) 2024-03-28 10:04:39 +01:00
CHANGELOG.md [ci] release (#6029) 2025-10-28 10:15:14 +01:00
LICENSE Svelte integration (#2671) 2020-12-23 13:45:26 +00:00
package.json [ci] release (#6029) 2025-10-28 10:15:14 +01:00
README.md Fix links (#5492) 2024-10-29 13:54:00 +01:00
svelte.config.js Migrate from Eslint/Prettier/Stylelint to Biome (#5794) 2025-07-01 14:55:41 +02:00
tsconfig.json Migrate from Eslint/Prettier/Stylelint to Biome (#5794) 2025-07-01 14:55:41 +02:00
turbo.json Fix turbo race condition (#5839) 2025-07-23 10:49:11 +02:00
vite.config.js Migrate from Eslint/Prettier/Stylelint to Biome (#5794) 2025-07-01 14:55:41 +02:00

@uppy/svelte

Uppy logo: a smiling puppy above a pink upwards arrow

npm version CI status for Uppy tests CI status for Companion tests CI status for browser tests

Svelte component wrappers around Uppys officially maintained UI plugins.

Uppy is being developed by the folks at Transloadit, a versatile file encoding service.

Installation

All Svelte components are provided through the @uppy/svelte package.

Install from NPM:

npm install @uppy/svelte
# Or with yarn
yarn add @uppy/svelte

Documentation

Documentation for this plugin can be found on the Uppy website. At the moment, theres no documentation yet, so this link wont work. Stay tuned for more info

License

The MIT License.