import { Options } from '../interfaces'; import { Searcher } from '../interfaces/search'; import { SearchByPrefixFilter } from './prefix-filter'; import { SearchByFuse } from './fuse'; import { SearchByKMP } from './kmp'; import { searchFuse, searchKMP } from '../interfaces/build-flags'; export function getSearcher(config: Options): Searcher { if (searchFuse && !searchKMP) { return new SearchByFuse(config); } if (searchKMP) { return new SearchByKMP(config); } return new SearchByPrefixFilter(config); }