zim-fuzzysearch
Version:
Client side fuzzy search combined with seperate configurable result highlighting.
24 lines (23 loc) • 1.03 kB
TypeScript
import Fuse from "fuse.js";
export interface FuzzyOptions extends Fuse.IFuseOptions<any> {
}
export declare type UseFuseType = (options: Fuse.IFuseOptions<any>, data?: unknown[]) => {
fuseResult: Fuse.FuseResult<unknown> | null;
resetFuse: () => void;
doFuseSearch: (search: string, reducer?: (toReduce: Fuse.FuseResult<unknown>[]) => any | Fuse.FuseResult<unknown>[], options?: Fuse.FuseSearchOptions) => unknown;
groupBy: (objectArray: {
[property: string]: any;
}[], propName: string) => {
[property: string]: any;
};
};
/**
* Exposes
* @param data custom data to be "full text search enabled".
* @param options fuse configuration object. Set which properties should be searchable.
* @returns Object:
* 1. fuseResult - state of fuse result. Set via doFuseSearch method.
* 2. doFuseSearch - method to search given string in configured data structure
* 3. groupBy - utility function to group result values.
*/
export declare const useFuse: UseFuseType;