Skip to content

Commit fed2000

Browse files
committed
Added legacy groups support to pbjs, see #568
1 parent 974a132 commit fed2000

File tree

13 files changed

+43
-24
lines changed

13 files changed

+43
-24
lines changed

cli/targets/proto.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ function buildRanges(keyword, ranges) {
153153
}
154154

155155
function buildType(type) {
156+
if (type.group)
157+
return; // built with the sister-field
156158
push("");
157159
push("message " + type.name + " {");
158160
++indent;
@@ -172,12 +174,16 @@ function buildField(field, passExtend) {
172174
return;
173175
if (first)
174176
first = false, push("");
177+
if (field.resolvedType && field.resolvedType.group) {
178+
buildGroup(field);
179+
return;
180+
}
175181
var sb = [];
176182
if (field.map)
177183
sb.push("map<" + field.keyType + ", " + field.type + ">");
178184
else if (field.repeated)
179185
sb.push("repeated", field.type);
180-
else if (syntax === 2)
186+
else if (syntax === 2 || field.parent.group)
181187
sb.push(field.required ? "required" : "optional", field.type);
182188
else
183189
sb.push(field.type);
@@ -188,6 +194,18 @@ function buildField(field, passExtend) {
188194
push(sb.join(" ") + ";");
189195
}
190196

197+
function buildGroup(field) {
198+
push(field.rule + " group " + field.resolvedType.name + " = " + field.id + " {");
199+
++indent;
200+
buildOptions(field.resolvedType);
201+
first = true;
202+
field.resolvedType.fieldsArray.forEach(function(field) {
203+
buildField(field);
204+
});
205+
--indent;
206+
push("}");
207+
}
208+
191209
function buildFieldOptions(field) {
192210
var keys;
193211
if (!field.options || !(keys = Object.keys(field.options)).length)

dist/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/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/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/protobuf.min.js.gz

-5 Bytes
Binary file not shown.

dist/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/runtime/protobuf.js

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/runtime/protobuf.min.js

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/runtime/protobuf.min.js.gz

0 Bytes
Binary file not shown.

src/service.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ ServicePrototype.remove = function remove(object) {
171171
ServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {
172172
var rpcService = new rpc.Service(rpcImpl);
173173
this.getMethodsArray().forEach(function(method) {
174-
rpcService[method.name.substring(0, 1).toLowerCase() + method.name.substring(1)] = function callVirtual(request, /* optional */ callback) {
174+
rpcService[util.lcFirst(method.name)] = function callVirtual(request, /* optional */ callback) {
175175
if (!rpcService.$rpc) // already ended?
176176
return;
177177
if (!request)

0 commit comments

Comments
 (0)