Skip to content

Commit ed7e2e7

Browse files
committed
CLI: Accept null for optional fields in generated static code
1 parent c43243b commit ed7e2e7

29 files changed

+790
-777
lines changed

cli/targets/static.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,10 @@ function buildType(ref, type) {
365365
type.fieldsArray.forEach(function(field) {
366366
var prop = util.safeProp(field.name);
367367
prop = prop.substring(1, prop.charAt(0) === "[" ? prop.length - 1 : prop.length);
368-
typeDef.push("@property {" + toJsType(field) + "} " + (field.optional ? "[" + prop + "]" : field.name) + " " + (field.comment || type.name + " " + field.name));
368+
var jsType = toJsType(field);
369+
if (field.optional)
370+
jsType = jsType + "|null";
371+
typeDef.push("@property {" + jsType + "} " + (field.optional ? "[" + prop + "]" : prop) + " " + (field.comment || type.name + " " + field.name));
369372
});
370373
push("");
371374
pushComment(typeDef);
@@ -391,10 +394,10 @@ function buildType(ref, type) {
391394
push("");
392395
var jsType = toJsType(field);
393396
if (field.optional && !field.map && !field.repeated && field.resolvedType instanceof Type)
394-
jsType = "(" + jsType + "|null|undefined)";
397+
jsType = jsType + "|null|undefined";
395398
pushComment([
396399
field.comment || type.name + " " + field.name + ".",
397-
"@member {" + jsType + "}" + escapeName(field.name),
400+
"@member {" + jsType + "} " + escapeName(field.name),
398401
"@memberof " + exportName(type),
399402
"@instance"
400403
]);

dist/light/protobuf.js

Lines changed: 14 additions & 9 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

7 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: 2 additions & 2 deletions
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.

dist/minimal/protobuf.min.js.gz

1 Byte
Binary file not shown.

dist/protobuf.js

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

0 commit comments

Comments
 (0)