feat(NODE-4769)!: remove ISO-8859-1 string support from Binary #602
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.
Description
What is changing?
constructor
,.write
, and.value
methodsIs there new documentation needed for these changes?
No
What is the motivation for this change?
Release Highlight
Removed ISO-8859-1 string format from
Binary
(a.k.a'latin1'
,'binary'
)The
Binary
BSON type no longer accepts a string as a constructor argument nor canwrite()
be invoked with a string argument. Both methods interpreted strings as binary sequences rather than UTF-8 or base64 which are much more common and expected formats. If there is a string representation of your data it is now expected that the logic that interprets the string format exists outside the Binary class to avoid misinterpreting data.Additionally,
.value()
only returns aUint8Array
/Buffer
that is properly sized to the data. Internally Binary may maintain a.buffer
larger than the the actual data that will be written to BSON bytes. Use.value()
to obtain only the bytes relevant to your Binary data.Double check the following
npm run check:lint
scripttype(NODE-xxxx)[!]: description
feat(NODE-1234)!: rewriting everything in coffeescript