uppy/packages/@uppy/zoom
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 Make Generics Optional in uppy.getPlugin (#6057) 2025-11-17 18:18:54 +05:30
.npmignore @uppy/zoom: refactor to TypeScript (#4979) 2024-03-10 11:23:03 +01:00
CHANGELOG.md [ci] release (#5939) 2025-09-16 16:07:17 +02:00
LICENSE companion,zoom: add implementation for Zoom plugin and Zoom Provider (#2342) 2020-07-30 11:01:21 +01:00
package.json [ci] release (#5939) 2025-09-16 16:07:17 +02:00
README.md Fix links (#5492) 2024-10-29 13:54:00 +01:00
tsconfig.build.json From Babel to TS (#5792) 2025-06-30 16:12:26 +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

@uppy/zoom

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

The Zoom plugin for Uppy lets users import recordings and related files from their Zoom account.

A Companion instance and zoom account with cloud recordings is required for the Zoom plugin to work. Companion handles authentication with Zoom, downloads files from Zoom and uploads them to the destination. This saves the user bandwidth, especially helpful if they are on a mobile connection.

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

Example

import Uppy from '@uppy/core'
import Zoom from '@uppy/zoom'

const uppy = new Uppy()
uppy.use(Zoom, {
  // Options
})

Installation

$ npm install @uppy/zoom

Alternatively, you can also use this plugin in a pre-built bundle from Transloadits CDN: Smart CDN. In that case Uppy will attach itself to the global window.Uppy object. See the main Uppy documentation for instructions.

Documentation

Documentation for this plugin can be found on the Uppy website.

License

The MIT License.