Member Junction
    Preparing search index...

    Function searchAcrossProviders

    • Searches for files across multiple storage providers in parallel.

      This utility function enables searching for files across multiple storage providers simultaneously. Each provider is queried in parallel using Promise.allSettled, ensuring that failures in one provider don't affect results from others.

      Providers that don't support search (SupportsSearch = false) will return a result with success=false and an appropriate error message rather than being silently skipped.

      Parameters

      Returns Promise<MultiProviderSearchResult>

      A promise that resolves to aggregated results grouped by provider

      // Search across Google Drive and Dropbox
      const providers = [googleDriveProvider, dropboxProvider];
      const userContexts = new Map([
      [googleDriveProvider.ID, { userID: currentUser.ID, contextUser }],
      [dropboxProvider.ID, { userID: currentUser.ID, contextUser }]
      ]);

      const result = await searchAcrossProviders(providers, 'quarterly report', {
      maxResultsPerProvider: 25,
      fileTypes: ['pdf', 'docx'],
      providerUserContexts: userContexts
      });

      // Process results by provider
      for (const providerResult of result.providerResults) {
      if (providerResult.success) {
      console.log(`${providerResult.providerName}: ${providerResult.results.length} results`);
      } else {
      console.log(`${providerResult.providerName}: ${providerResult.errorMessage}`);
      }
      }