UNPKG

search-optimizer

Version:

An optimized, framework-agnostic solution for handling search-as-you-type functionality

27 lines (26 loc) 910 B
export function createGraphQLExecutor(options) { const { client, query, queryVariableName = 'query', resultExtractor = data => data, additionalVariables = {}, } = options; return { execute: async (searchQuery, signal) => { const variables = { ...additionalVariables, [queryVariableName]: searchQuery, }; const context = signal ? { fetchOptions: { signal } } : undefined; try { const response = await client.query({ query, variables, context, }); return resultExtractor(response.data); } catch (error) { if (error instanceof Error) { throw error; } throw new Error(String(error)); } }, }; }