Skip to content

Commit e7e123a

Browse files
committed
Other: Cache any regexp instance (perf); Docs: Documented throwing behavior of Reader.create and Message.decode
1 parent 44a8d3a commit e7e123a

35 files changed

Lines changed: 509 additions & 159 deletions

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ message AwesomeMessage {
103103

104104
```js
105105
protobuf.load("awesome.proto", function(err, root) {
106-
if (err) throw err;
106+
if (err)
107+
throw err;
107108

108109
// Obtain a message type
109110
var AwesomeMessage = root.lookup("awesomepackage.AwesomeMessage");
@@ -112,9 +113,9 @@ protobuf.load("awesome.proto", function(err, root) {
112113
var message = AwesomeMessage.create({ awesomeField: "AwesomeString" });
113114

114115
// Verify the message if necessary (i.e. when possibly incomplete or invalid)
115-
var err = AwesomeMessage.verify(message);
116-
if (err)
117-
throw Error(err);
116+
var errMsg = AwesomeMessage.verify(message);
117+
if (errMsg)
118+
throw Error(errMsg);
118119

119120
// Encode a message to an Uint8Array (browser) or Buffer (node)
120121
var buffer = AwesomeMessage.encode(message).finish();
@@ -132,7 +133,7 @@ protobuf.load("awesome.proto", function(err, root) {
132133
});
133134
```
134135

135-
**Note** that `Message.encode` does not 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 (only) where necessary to avoid redundant assertions where messages are already known to be valid. `Message.decode` throws if a buffer is invalid.
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.
136137

137138
Additionally, promise syntax can be used by omitting the callback, if preferred:
138139

cli/targets/static.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,8 @@ function buildType(ref, type) {
424424
"Decodes " + aOrAn(type.name) + " message from the specified reader or buffer.",
425425
"@param {$protobuf.Reader|Uint8Array} " + (config.beautify ? "reader" : "r") + " Reader or buffer to decode from",
426426
"@param {number} [" + (config.beautify ? "length" : "l") + "] Message length if known beforehand",
427-
"@returns {" + fullName + "} " + type.name
427+
"@returns {" + fullName + "} " + type.name,
428+
"@throws {Error} If the payload is not a reader or valid buffer or required fields are missing"
428429
]);
429430
buildFunction(type, "decode", protobuf.decoder(type));
430431

@@ -433,7 +434,8 @@ function buildType(ref, type) {
433434
pushComment([
434435
"Decodes " + aOrAn(type.name) + " message from the specified reader or buffer, length delimited.",
435436
"@param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from",
436-
"@returns {" + fullName + "} " + type.name
437+
"@returns {" + fullName + "} " + type.name,
438+
"@throws {Error} If the payload is not a reader or valid buffer or required fields are missing"
437439
]);
438440
push(name(type.name) + ".decodeDelimited = function decodeDelimited(reader) {");
439441
++indent;

dist/light/protobuf.js

Lines changed: 52 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/light/protobuf.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/light/protobuf.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/light/protobuf.min.js.gz

44 Bytes
Binary file not shown.

dist/light/protobuf.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/minimal/protobuf.js

Lines changed: 21 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/minimal/protobuf.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/minimal/protobuf.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)