fix: google.protobuf.Any type_url fixes #1068
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.
Background
While using protobuf.js we've come across compatibility issues to do with
google.protobuf.Any
. Namely, when dealing with Any types, according to Google's documentation (referenced below),types.googleapis.com
should be used as a default prefix within thetype_url
. ThefromObject
function referenced below failed to lookup types that had a prefix in their@type
when converting from JSON to protobuf.Addresses #850.
From Google's
google.protobuf.Any
docsAnd, regarding JSON
In this PR
fromObject
, only use type name after the last '/' when doing a lookup and make sure thetype_url
prefix is preserved. Otherwise, lookups that includedtype_url
path prefixes (such as the defaulttype.googleapis.com
prefix) would fail.toObject
, usetype.googleapis.com
default prefix if notype_url
prefix is used.