UNPKG

@jsonhero/fuzzy-json-search

Version:
35 lines (34 loc) 1.38 kB
import LRUCache from "lru-cache"; import { IItemAccessor, ItemScore } from "./fuzzyScoring"; import { SearchResult } from "./search"; export declare type JSONHeroSearchFormatter = (value: unknown) => string | undefined; export declare type JSONHeroSearchOptions = { cacheSettings?: { enabled?: boolean; max?: number; }; accessor?: IItemAccessor<string>; formatter?: JSONHeroSearchFormatter; }; export declare class JSONHeroSearch { json: unknown; items: string[]; scoreCache: Map<number, ItemScore>; searchCache: LRUCache<string, Array<SearchResult<string>>>; options: Required<Omit<JSONHeroSearchOptions, "formatter">>; constructor(json: unknown, options?: JSONHeroSearchOptions); prepareIndex(): void; search(query: string): Array<SearchResult<string>>; } export declare class JSONHeroSearchAccessor implements IItemAccessor<string> { json: unknown; formatter: JSONHeroSearchFormatter; valueCache: Map<string, string>; constructor(json: unknown, formatter: JSONHeroSearchFormatter); getIsArrayItem(path: string): boolean; getItemLabel(path: string): string; getItemDescription(path: string): string; getItemPath(path: string): string; getRawValue(path: string): string | undefined; getFormattedValue(path: string): string | undefined; }