ipsased
Version:
UI toolkit monorepo containing a React component library, UI utilities, a drag-and-drop library, and more
43 lines (32 loc) • 1.51 kB
Markdown
# @acusti/matchmaking
[](https://www.npmjs.com/package/@acusti/matchmaking)
[](https://npms.io/search?q=%40acusti%2Fmatchmaking)
[](https://bundlephobia.com/package/@acusti/matchmaking)
[](https://www.npmjs.com/package/@acusti/matchmaking)
Intuitive approximate string matching (i.e. fuzzy searches). See the
[tests][] to understand its behavior and evaluate if it’s what you are
looking for.
[tests]:
https://github.com/acusti/uikit/blob/main/packages/matchmaking/src/index.test.ts
## Usage
```
npm install @acusti/matchmaking
# or
yarn add @acusti/matchmaking
```
`matchmaking` exports two functions: `getBestMatch` and `sortByBestMatch`.
Import them by name:
```js
import { getBestMatch, sortByBestMatch } from '@acusti/matchmaking';
```
Both functions take the same payload:
```ts
type Payload = {
items: Array<string>;
text: string;
};
```
However, `sortByBestMatch` returns an array of items matching the one
passed in but sorted by how close they match the passed-in `text`, while
`getBestMatch` just returns the text of the single closest match found
(i.e. `sortByBestMatch(payload)[0]`);