krisk / Fuse

Lightweight fuzzy-search, in JavaScript
https://fusejs.io/
Apache License 2.0
17.76k stars 753 forks source link

Create a flag emptyGetsAll #728

Closed aworld1 closed 3 weeks ago

aworld1 commented 11 months ago

Is there an existing issue or pull request for this?

Feature description

Create an option that when the query is empty, instead of getting no results, all results are returned.

Desired solution

non-empty query: current behavior emptyGetsAll is set to true: all results returned on empty input emptyGetsAll is set to false: no results returned on empty input default for flag should be false.

Alternatives considered

Hardcoding outside of library; ugly.

Additional context

The reason for this feature is if a search bar's behavior wants to get all entries on load when the query is empty (or when all characters are deleted), no hardcoded if-statement is necessary. Further, the items returned from Fuse.search are formatted differently than the list of objects fed as a parameter, as each object is placed as an "item" in the returned list. This improves consistency for the library and removes overhead.

jimmi-rbn commented 10 months ago

Love the product but this feature is must have.

github-actions[bot] commented 6 months ago

This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 30 days

stephane-klein commented 5 months ago

Workaround in my Svelte project:

    $: if (fuse) {
        if (searchInput == "") {
            graphNodesStore.set(fuse._docs); // <= to get all results
        } else {
            graphNodesStore.set(fuse.search(searchInput).map((row) => row.item));
        }
    }
github-actions[bot] commented 1 month ago

This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 30 days