Skip to main content
Glama
fallback-search.ts1.91 kB
import type {ServerContext} from '../../../context.js'; import type {HierarchicalSearchResult, SearchFilters} from '../types.js'; import type {Technology} from '../../../../apple-client.js'; import {performHierarchicalSearch} from './hierarchical-search.js'; import {performRegexSearch} from './regex-search.js'; type FallbackSearchOptions = SearchFilters & { maxResults: number; }; export const performFallbackSearches = async ( context: ServerContext, query: string, activeTechnology: Technology, options: FallbackSearchOptions, ): Promise<HierarchicalSearchResult[]> => { const {client} = context; const {maxResults, platform, symbolType} = options; let fallbackResults: HierarchicalSearchResult[] = []; // Try hierarchical search first try { fallbackResults = await performHierarchicalSearch(context, query, activeTechnology.title, maxResults); } catch (error) { console.warn(`Hierarchical search failed for ${activeTechnology.title}:`, error instanceof Error ? error.message : String(error)); } // If still no results, try regex search as final fallback if (fallbackResults.length === 0) { try { fallbackResults = await performRegexSearch(context, query, activeTechnology.title, maxResults); } catch (error) { console.warn(`Regex search failed for ${activeTechnology.title}:`, error instanceof Error ? error.message : String(error)); } } // If all advanced searches fail, try the original simple search if (fallbackResults.length === 0) { try { const simpleResults = await client.searchFramework(activeTechnology.title, query, {maxResults, platform, symbolType}); fallbackResults = simpleResults.map(result => ({ ...result, foundVia: 'direct' as const, })); } catch (error) { console.warn(`Simple fallback search failed for ${activeTechnology.title}:`, error instanceof Error ? error.message : String(error)); } } return fallbackResults; };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MightyDillah/apple-doc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server