fuse-format v2.4.2
Formatter for Fuse js
Small utility that takes an array or an object, and returns an array of 'key-strings' for each path in the item. This is useful for libraries like Fusejs that require an array of keys for the fuzzy search.
Install
npm i fuseFormat --save
Include
Include package at the top of your project.
const fuseFormat = require('fuse-format')
or
import fuseFormat from 'fuse-format'
Options
A few options are available to you to tweak your response.
Key | Type | Default | ||
---|---|---|---|---|
includeIndexes | boolean | false | ||
exclude | string | boolean | null | |
depth | integer | 3 |
includeIndexes
includeIndexes
sets whether or not to include the array index in the result keystring.
Example:
const data = [ { iHaveAnArray: [ { hello: 'there' } ] } ]
fuseFormat(data, { includeIndexes: true })
// returns [ '0.iHaveAnArray', '0.iHaveAnArray.0.hello' ]
exclude
exclude
accepts either a string or an array of strings of keys or patterns that you would like to exclude from the results.
Example:
const data = { oh: [ { hai: { mark: '' } } ] }
fuseFormat(data, { exclude: 'mark' })
// returns ['oh', 'oh.hai']
Make sure you know what you are excluding because it works from the top down. For example:
const data = {
i: {
am: {
deeply: {
nested: [
{
hi: ''
}
]
}
}
}
}
fuseFormat(data, { exclude: ['am'] })
// returns ['i']
Pattern Example:
const data = {
i: {
am: {
deeply: {
nested: [
{
hi: ''
}
]
}
}
},
so: {
i: {
am: null
}
}
}
fuseFormat(data, exclude: ['deeply.nested'])
// returns ['i', 'i.am', 'i.am.deeply', 'so', 'so.i', 'so.i.am']
depth
depth
accepts an integer and sets how deep to traverse the source.
Example:
const data = {
i: {
am: {
deeply: {
nested: [
{
hi: ''
}
]
}
}
}
}
fuseFormat(data, { depth: 2 })
// returns ['i', 'i.am']
Examples
More examples can be found in the examples folder the repo on: Github
Development
PR's are welcome from any level.