Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

@nexucis/fuzzy

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nexucis/fuzzy

small, standalone fuzzy search / fuzzy filter. browser or node

latest
Source
npmnpm
Version
0.5.1
Version published
Weekly downloads
20K
27.62%
Maintainers
1
Weekly downloads
 
Created
Source

Fuzzy

CircleCI codecov NPM version GitHub license

This lib provides a fuzzy search. It's inspired from the work of Matt York on the repository fuzzy

Installation

npm install @nexucis/fuzzy

Getting started

  • Filter a simple list of string
import Fuzzy from '@nexucis/fuzzy'

const fuz = new Fuzzy()
const list = ['lion', 'goat', 'mouse', 'dragon']

console.log(fuz.filter('li', list))
// [
//   {rendered: 'lion', index: 0, score: 4, original: 'lion'},
// ]
//
  • Wrap matching characters in each string for highlighting
import Fuzzy from '@nexucis/fuzzy'

const fuz = new Fuzzy({pre:'<b>', post:'</b>'})
const list = ['lion', 'goat', 'mouse', 'dragon']

console.log(fuz.filter('li', list))
// [
//   {rendered: '<b>li</b>on', index: 0, score: 4, original: 'lion'},
// ]
//
  • Include the list of indices of the matched characters to make your own highlight
import Fuzzy from '@nexucis/fuzzy'

const fuz = new Fuzzy({includeMatches: true})
const list = ['lion', 'goat', 'mouse', 'dragon']

console.log(fuz.filter('li', list))
// [
//   {rendered: 'lion', index: 0, score: 4, original: 'lion', intervales:[{from:0, to:2}]},
// ]
//
  • Override locally the global configuration
import Fuzzy from '@nexucis/fuzzy'

const fuz = new Fuzzy({includeMatches: true})
const list = ['lion', 'goat', 'mouse', 'dragon']

console.log(fuz.filter('li', list), {includeMatches: false})
// [
//   {rendered: 'lion', index: 0, score: 4, original: 'lion'},
// ]
//

Available Options

Note: each option can be passed to the constructor or/and in each method exposed. The options passed in the method take precedence over the one passed in the contructor.

caseSensitive

  • Type: boolean
  • Default: false

Indicates whether comparisons should be case-sensitive.

excludedChars

  • Type: array of string
  • Default: []

List of characters that should be ignored in the pattern or in the word used for matching

includeMatches

  • Type: boolean
  • Default: false

Whether the matches should be included in the result. When true, each record in the result set will include the indices of the matched characters. These can consequently be used for highlighting purposes.

shouldSort

  • Type: boolean
  • Default: false

Whether the result should be sorted

shouldRender

  • Type: boolean
  • Default: true

If true, then the strings matched will be automatically rendered using the config pre/post and escapeHTML.

In case you want to render it yourself, set it to false, and set includeMatches to true. You will need the intervals to call the method render.

escapeHTML

  • Type: boolean
  • Default: false

Whether the filtering should escape the HTML characters that can be found in each record in the result

pre

  • Type: string
  • Default: ''

Should be used to prefix each matched characters. Can be useful for the highlighting.

post

  • Type: string
  • Default: ''

Should be used to suffix each matched characters. Can be useful for the highlighting.

Contributions

Any contribution or suggestion would be really appreciated. Feel free to file an issue or send a pull request.

License

MIT

Keywords

fuzzy

FAQs

Package last updated on 16 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts