Skip to content

pie6k/fuzzystring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fuzzystring

Simple fuzzy search library written in TypeScript

Alows partial matching of requested string. Useful for searching large sets of data without requesting acureate and full user input.

Demo

Click here for demo

screen recording 2018-12-05 at 21 35 33

Install

yarn add fuzzystring

import { fuzzyString } from 'fuzzystring';

// or if you prefer default 🤮exports
import fuzzyString from 'fuzzystring';

Api

fuzzyString('liolor', 'lorem ipsum dolor sit');

// returns
{
  parts: [
    { content: 'l', type: 'input' },
    { content: 'orem ', type: 'fuzzy' },
    { content: 'i', type: 'input' },
    { content: 'psum d', type: 'fuzzy' },
    { content: 'olor', type: 'input' },
    { content: ' sit', type: 'suggestion' },
  ],
  score: 0.87,
}

Performance

console.time('measure');
for (let i = 0; i < 100000; i++) {
  fuzzyString(`ive ${i} lles`, `i have ${i} apples`);
}
console.timeEnd('measure');
// measure: 271.169921875ms

~200k ops/s jsperf

Development

Test

yarn test

Build

yarn build

Toodo

  • Demo page
  • Solid performance test
  • Memoized cache for the same inputs
  • CI test cov etc