2.4.2 • Published 5 years ago

fuse-format v2.4.2

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

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 version

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.

KeyTypeDefault
includeIndexesbooleanfalse
excludestringbooleannull
depthinteger3
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.

2.4.2

5 years ago

2.4.1

5 years ago

2.4.0

5 years ago

2.3.0

6 years ago

2.2.2

6 years ago

2.2.1

6 years ago

2.2.0

6 years ago

2.1.4

6 years ago

2.1.3

6 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.0

6 years ago

1.0.0

6 years ago