Ignore undefined fields in Collection.find() #1284
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed when calling the
find(selector, fields)
method on a collection with fields set toundefined
, I get aTypeError: Object.keys called on non-object
. When checking out the problem, I found that thecollection.js
module checks ifargument.length >= 2
which evaluates totrue
even ifargument[1]
is not explicitly set. I.e. the code is trying to use thefields
argument as if it's set, throwing the error eventually.Fixed it by comparing
fields !== undefined
instead of using the argument count.In our application, we basically do something like this:
I changed
fields
tofields || {}
as a quick work-around for now, but I'm pretty sureundefined
should be just ignored in the module.