feat(NODE-7255): add well-known Symbol alias for _bsontype
#829
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.
Make
Symbol.for('@@mdb.bson.type')available as an alias for_bsontype. This simplifies downstream code by making it a reliable property of deserialized values that cannot conflict with_bsontypein user-provided (sub)documents, which would otherwise need to be detected through an additional prototype comparison.Description
Summary of Changes
Notes for Reviewers
What is the motivation for this change?
Release Highlight
Release notes highlight
JS classes representing BSON values now have a
bsonTypesymbol property as an alias for the existing_bsontypeproperty. This makes it easier to distinguish between values of a specific BSON type and documents with arbitrary keys after deserializing:It is safe to replace all uses of
value._bsontypewithvalue[bsonType].Double check the following
npm run check:lint)type(NODE-xxxx)[!]: descriptionfeat(NODE-1234)!: rewriting everything in coffeescript