From 1f4b8e187c8845fd899f0fecde3aa1027b4ec600 Mon Sep 17 00:00:00 2001 From: prakash Date: Wed, 24 Jun 2026 16:43:31 +0530 Subject: [PATCH] apply feedback --- packages/@uppy/core/src/Uppy.ts | 20 +++++++++++++++++-- .../core/src/provider-views/utils/addFiles.ts | 12 +++++++---- .../utils/companionFileToUppyFile.ts | 12 +++++++---- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/packages/@uppy/core/src/Uppy.ts b/packages/@uppy/core/src/Uppy.ts index b06baabd6..7a05862c6 100644 --- a/packages/@uppy/core/src/Uppy.ts +++ b/packages/@uppy/core/src/Uppy.ts @@ -177,7 +177,19 @@ export type UnknownProviderPlugin< BaseProviderPlugin & { rootFolderId: string | null files: UppyFile[] - provider: Provider + // Structural subset of the real `Provider` class,structural rather than the nominal class type so custom + // providers matching the public surface aren't forced to inherit from `Provider`. + provider: Pick< + Provider, + | 'name' + | 'provider' + | 'login' + | 'logout' + | 'fetchPreAuthToken' + | 'fileUrl' + | 'list' + | 'search' + > view: ProviderView } @@ -199,7 +211,11 @@ export type UnknownSearchProviderPlugin< B extends Body, > = UnknownPlugin & BaseProviderPlugin & { - provider: SearchProvider + // Structural subset of the real `SearchProvider` class (see note above). + provider: Pick< + SearchProvider, + 'name' | 'provider' | 'fileUrl' | 'search' + > } // for better readability diff --git a/packages/@uppy/core/src/provider-views/utils/addFiles.ts b/packages/@uppy/core/src/provider-views/utils/addFiles.ts index db962d092..8fc63a38b 100644 --- a/packages/@uppy/core/src/provider-views/utils/addFiles.ts +++ b/packages/@uppy/core/src/provider-views/utils/addFiles.ts @@ -1,6 +1,8 @@ -import type Provider from '../../companion-client/Provider.js' -import type SearchProvider from '../../companion-client/SearchProvider.js' -import type { UnknownPlugin } from '../../index.js' +import type { + UnknownPlugin, + UnknownProviderPlugin, + UnknownSearchProviderPlugin, +} from '../../index.js' import type { Body, CompanionFile, @@ -13,7 +15,9 @@ import companionFileToUppyFile from './companionFileToUppyFile.js' const addFiles = ( companionFiles: CompanionFile[], plugin: UnknownPlugin, - provider: Provider | SearchProvider, + provider: + | UnknownProviderPlugin['provider'] + | UnknownSearchProviderPlugin['provider'], ): void => { const uppyFiles = companionFiles.map((f) => companionFileToUppyFile(f, plugin, provider), diff --git a/packages/@uppy/core/src/provider-views/utils/companionFileToUppyFile.ts b/packages/@uppy/core/src/provider-views/utils/companionFileToUppyFile.ts index 3886a9298..678ed8d4d 100644 --- a/packages/@uppy/core/src/provider-views/utils/companionFileToUppyFile.ts +++ b/packages/@uppy/core/src/provider-views/utils/companionFileToUppyFile.ts @@ -1,6 +1,8 @@ -import type Provider from '../../companion-client/Provider.js' -import type SearchProvider from '../../companion-client/SearchProvider.js' -import type { UnknownPlugin } from '../../index.js' +import type { + UnknownPlugin, + UnknownProviderPlugin, + UnknownSearchProviderPlugin, +} from '../../index.js' import type { Body, CompanionFile, @@ -11,7 +13,9 @@ import type { const companionFileToUppyFile = ( file: CompanionFile, plugin: UnknownPlugin, - provider: Provider | SearchProvider, + provider: + | UnknownProviderPlugin['provider'] + | UnknownSearchProviderPlugin['provider'], ): RemoteUppyFile => { const name = file.name || file.id