fix: code generation for int64 map values in fromPartial and fromJson #395
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.
Hi @stephenh,
I noticed that with
--ts_proto_opt=forceLong=long
, if you have a map with an int64 value (e.g.map<string, int64> data
), the generated typescript code infromJSON
andfromPartial
wasn't correct (it fell back tomessage.data[key] = Long(value)
, which didn't compile). I changed that to useLong.fromString
infromJSON
(int64 should always be string in JSON, right?) andLong.fromValue
infromPartial
.As we don't use binary protobuf, I only checked these two methods.
Also, I unfortunately didn't figure out how to add a test for this, so I'll leave this to you.
Kind regards!