Member Junction
    Preparing search index...

    Variable searchAcrossProvidersConst

    searchAcrossProviders: (
        providerEntities: MJFileStorageProviderEntity[],
        query: string,
        options?: SearchAcrossProvidersOptions,
    ) => Promise<MultiProviderSearchResult> = SearchAcrossProviders

    Type Declaration

      • (
            providerEntities: MJFileStorageProviderEntity[],
            query: string,
            options?: SearchAcrossProvidersOptions,
        ): Promise<MultiProviderSearchResult>
      • 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}`);
        }
        }

    Use SearchAcrossProviders.