protobuf.js icon indicating copy to clipboard operation
protobuf.js copied to clipboard

feat: support message verify unsigned int

Open SzHeJason opened this issue 3 years ago • 0 comments

Message.verify is not sensitive for use negative number on uint32

package awesomepackage;
syntax = "proto3";

message AwesomeMessage {
    uint32 awesome_field = 1; // becomes awesomeField
}
protobuf.load(path.join(__dirname, "awesome.proto"), function (err, root) {
  if (err)
    throw err;

  // Obtain a message type
  const AwesomeMessage = root!.lookupType("awesomepackage.AwesomeMessage");

  // Exemplary payload
  const payload = { awesomeField: -1 };

  // Verify the payload if necessary (i.e. when possibly incomplete or invalid)
  const errMsg = AwesomeMessage.verify(payload);

  // errMsg equal null
  if (errMsg){
    throw Error(errMsg);
  }
});

The Behavior make grpc service get incorrect value eg: send -1 get 4294967295

SzHeJason avatar Dec 07 '21 03:12 SzHeJason