search-optimizer
Version:
An optimized, framework-agnostic solution for handling search-as-you-type functionality
20 lines (19 loc) • 599 B
JavaScript
export function createGenericExecutor(searchFn, options = {}) {
const { name = 'GenericExecutor', errorHandler } = options;
return {
execute: async (query, signal) => {
try {
return await searchFn(query, signal);
}
catch (error) {
if (errorHandler) {
throw errorHandler(error);
}
if (error instanceof Error) {
throw error;
}
throw new Error(`${name} error: ${String(error)}`);
}
},
};
}