• Builds a configured Fuse.js instance with default or custom options.

    Note: For custom field extraction logic, use the top-level getFn option via overrides rather than passing getFn in individual keys. Keys should only contain 'name' and optional 'weight'.

    Important: useExtendedSearch defaults to false. To enable Fuse's extended search syntax (e.g., 'word1 -word2 | phrase'), explicitly pass useExtendedSearch: true in overrides.

    Type Parameters

    • T

      The data type being searched.

    Parameters

    • list: T[]

      Array of items to search.

    • keys: (string | { name: string; weight?: number })[]

      Search key definitions (string name or { name: string; weight?: number }).

    • Optionaloverrides: Partial<IFuseOptions<T>>

      Optional overrides for default Fuse options (can include top-level getFn and useExtendedSearch).

    Returns Fuse<T>

    Configured Fuse instance.

    export function buildFuse<T>(
    list: T[],
    keys: (string | { name: string; weight?: number })[],
    overrides?: Partial<IFuseOptions<T>>,
    ): Fuse<T> {
    return new Fuse(list, {
    ...defaultFuseOptions,
    keys,
    ...overrides,
    });
    }