Skip to content

Commit 13e4aa3

Browse files
committed
Docs: Better explain how .verify, .encode and .decode are connected
1 parent 7502dd2 commit 13e4aa3

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

README.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,11 @@ protobuf.load("awesome.proto", function(err, root) {
133133
});
134134
```
135135

136-
**Note** that `Message.encode` does not implicitly verify a message but tries to encode whatever is specified, which might result in a runtime error being thrown somewhere down the road. Instead, there is `Message.verify` to explicitly perform verification priorly where necessary to avoid redundant assertions where messages are already known to be valid. `Message.decode` throws if a buffer is invalid.
136+
**Note:** To avoid redundant assertions where messages are already known to be valid, there is a seperate method for encoding and verification. Hence ...
137+
138+
* `Message.encode` does not implicitly verify a message but tries to encode whatever is specified, possibly resulting in a runtime error being thrown somewhere down the road.
139+
* `Message.verify` can be used to explicitly perform verification prior to encoding where necessary. Instead of throwing, it returns the error message, if any.
140+
* `Message.decode` throws if a buffer is invalid or missing required fields and doesn't require calling `Message.verify` afterwards.
137141

138142
Additionally, promise syntax can be used by omitting the callback, if preferred:
139143

0 commit comments

Comments
 (0)