JSPM

fuzzy-filter

0.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 62
  • Score
    100M100P100Q69124F

a browserify-compatible fuzzy string filtering function

Package Exports

  • fuzzy-filter

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fuzzy-filter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Fuzzy-filter

Build Status

A browserify-compatible fuzzy string filtering function.

Used by Stratus Editor for the Snap Open plugin.

Parameters

pattern - The fuzzy String to match against.
items   - An Array of String.
options - (optional)
        * pre         - String to insert before matching text.
        * post        - String to insert after matching text.
        * limit       - Integer maximum number of results.
        * separator   - String separator. Match against the last
                        section of the String by default.
        * ignorecase  - Boolean (default: true).
        * ignorespace - Boolean (default: true).
        * separate    - Boolean (default: false). If set to true, the
                        function returns an array of an array of strings,
                        where each array is
                        [beforeLastSeparator, afterLastSeparator].
                        If set, `separator` must also be passed.

Note: If pre is passed, you also have to pass post (and vice-versa).

Examples

Simple usage

fuzzy = require 'fuzzy-filter'
fuzzy "cs", ["cheese", "pickles", "crackers", "pirate attack", "cs!!"]
# => ["cs!!", "cheese", "crackers"]

Highlight match

fuzzy "cs", ["cheese", "pickles", "crackers", "pirate attack", "cs!!"],
  pre:  "<b>"
  post: "</b>"
# => ["<b>cs</b>!!", "<b>c</b>hee<b>s</b>e", "<b>c</b>racker<b>s</b>"]

Separator

fuzzy "cs", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"],
  pre:       "<b>"
  post:      "</b>"
  separator: "/"
# => [ "<b>c</b>ookie<b>s</b>"
#    , "fried/<b>c</b>hee<b>s</b>e"
#    , "cheese/<b>c</b>ookie<b>s</b>" ]

fuzzy "cs/", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"],
  pre:       "<b>"
  post:      "</b>"
  separator: "/"
# => [ "<b>c</b>hee<b>s</b>e/pie"
#    , "<b>c</b>hee<b>s</b>e/cookies" ]

fuzzy "cs/p", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"],
  pre:       "<b>"
  post:      "</b>"
  separator: "/"
# => ["<b>c</b>hee<b>s</b>e/<b>p</b>ie"]

fuzzy "cs/p", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"],
  pre:       "<b>"
  post:      "</b>"
  separator: "/"
  separate:  true
# => [ ["<b>c</b>hee<b>s</b>e", "<b>p</b>ie"] ]

License

See LICENSE.