A clear and concise description of what the bug is.
Non-number/string value is allowed through helper/get.js causes runtime error value.trim() is not a function at https://github.com/krisk/Fuse/blob/a2d62fb6b1ad4cb71c485632df4670baf6f32a6a/src/helpers/types.js#L40
Error:
node_modules/fuse.js/dist/fuse.common.js:242
return !value.trim().length;
^
TypeError: value.trim is not a function
The Fuse.js version where this bug is happening.
6.3.0 and above
Yes, the previous version in which this bug was not present was: ...
Yes, version below 6.3.0
Bug seem to have been introduced by https://github.com/krisk/Fuse/commit/938db2aebb1a5b2d610cd8bb3258ff701baa46fb
const Fuse = require('fuse.js')
const data = [{first: false}]
const options = {keys: [{name: 'first'}]}
const fuse = new Fuse(data, options)
fuse.search('a')
else if below is always true
https://github.com/krisk/Fuse/blob/90f153793432997654a2a006e0f01753cd23c9ff/src/helpers/get.js#L28
since line below returns an array with at least one item
https://github.com/krisk/Fuse/blob/90f153793432997654a2a006e0f01753cd23c9ff/src/tools/KeyStore.js#L74
Which leads into another deepGet with obj = false which leads to if block below and pushing non-string/number value into list https://github.com/krisk/Fuse/blob/90f153793432997654a2a006e0f01753cd23c9ff/src/helpers/get.js#L9
Hi @krisk , I just upgraded to 6.4.1 and seem to encounter this error.


My items look like;
[
{ value: 'placement lesson' },
{
value: {
grade: 1,
lessonNumber: "1",
name: "Lesson 1",
},
},
]
My options look like;
{
threshold: 0.3,
ignoreLocation: true,
keys: ['value', 'value.name', 'value.lessonNumber'],
}
value is included in the keys list because sometimes in our data, value is a string, other times it's an object.
Downgrading to < 6.3.0 does fix the issue for now. Is my usage a supported use-case or do I need to refactor my code?
I'm having this problem when the lib try read a instance of Date... someone knows how to fix?
We can probably get a treatment. When receiving an object, do a JSON.stringify ()