From 5c6941cf87c226c3ed460a649c17f84cf73ff70e Mon Sep 17 00:00:00 2001 From: Mathieu Acthernoene Date: Mon, 19 Dec 2016 15:21:28 +0100 Subject: [PATCH] Replace user example by helloworld example, cleanup --- .../output/helloworld/helloworld_grpc_pb.js | 43 +++ .../output/helloworld/helloworld_pb.js | 340 ++++++++++++++++++ examples/js-grpc/output/user/user_grpc_pb.js | 155 -------- examples/js-grpc/protos/helloworld.proto | 53 +++ examples/js-grpc/protos/user.proto | 66 ---- .../{{.File.Package}}_grpc_pb.js.tmpl | 34 +- .../{{.File.Package}}_pb.js.tmpl | 176 +++++++++ 7 files changed, 624 insertions(+), 243 deletions(-) create mode 100644 examples/js-grpc/output/helloworld/helloworld_grpc_pb.js create mode 100644 examples/js-grpc/output/helloworld/helloworld_pb.js delete mode 100644 examples/js-grpc/output/user/user_grpc_pb.js create mode 100644 examples/js-grpc/protos/helloworld.proto delete mode 100644 examples/js-grpc/protos/user.proto create mode 100644 examples/js-grpc/templates/{{.File.Package}}/{{.File.Package}}_pb.js.tmpl diff --git a/examples/js-grpc/output/helloworld/helloworld_grpc_pb.js b/examples/js-grpc/output/helloworld/helloworld_grpc_pb.js new file mode 100644 index 0000000..a4ae500 --- /dev/null +++ b/examples/js-grpc/output/helloworld/helloworld_grpc_pb.js @@ -0,0 +1,43 @@ +// GENERATED CODE -- DO NOT EDIT! + +'use strict'; +var grpc = require('grpc'); +var helloworld_pb = require('./helloworld_pb.js'); + +function serialize_helloworld_HelloRequest(arg) { + if (!(arg instanceof helloworld_pb.HelloRequest)) { + throw new Error('Expected argument of type helloworld.HelloRequest'); + } + return new Buffer(arg.serializeBinary()); +} + +function deserialize_helloworld_HelloRequest(buffer_arg) { + return helloworld_pb.HelloRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_helloworld_HelloReply(arg) { + if (!(arg instanceof helloworld_pb.HelloReply)) { + throw new Error('Expected argument of type helloworld.HelloReply'); + } + return new Buffer(arg.serializeBinary()); +} + +function deserialize_helloworld_HelloReply(buffer_arg) { + return helloworld_pb.HelloReply.deserializeBinary(new Uint8Array(buffer_arg)); +} + +var GreeterService = exports.GreeterService = { + sayHello: { + path: '/helloworld.Greeter/SayHello', + requestStream: false, + responseStream: false, + requestType: helloworld_pb.HelloRequest, + responseType: helloworld_pb.HelloReply, + requestSerialize: serialize_helloworld_HelloRequest, + requestDeserialize: deserialize_helloworld_HelloRequest, + responseSerialize: serialize_helloworld_HelloReply, + responseDeserialize: deserialize_helloworld_HelloReply, + }, +} + +exports.GreeterClient = grpc.makeGenericClientConstructor(GreeterService); diff --git a/examples/js-grpc/output/helloworld/helloworld_pb.js b/examples/js-grpc/output/helloworld/helloworld_pb.js new file mode 100644 index 0000000..de5128e --- /dev/null +++ b/examples/js-grpc/output/helloworld/helloworld_pb.js @@ -0,0 +1,340 @@ +// GENERATED CODE -- DO NOT EDIT! + + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = Function('return this')(); + + +goog.exportSymbol('proto.user.HelloRequest', null, global); + +goog.exportSymbol('proto.user.HelloReply', null, global); + + + +/** + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.user.HelloRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.user.HelloRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.user.HelloRequest.displayName = 'proto.user.HelloRequest'; +} + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.user.HelloRequest.prototype.toObject = function(opt_includeInstance) { + return proto.user.HelloRequest.toObject(opt_includeInstance, this); +}; + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.user.HelloRequest} msg The msg instance to transform. + * @return {!Object} + */ +proto.user.HelloRequest.toObject = function(includeInstance, msg) { + var f, obj = { + profile: (f = msg.getProfile()) && proto.user.Profile.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.user.HelloRequest} + */ +proto.user.HelloRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.user.HelloRequest; + return proto.user.HelloRequest.deserializeBinaryFromReader(msg, reader); +}; + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.user.HelloRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.user.HelloRequest} + */ +proto.user.HelloRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.user.Profile; + reader.readMessage(value,proto.user.Profile.deserializeBinaryFromReader); + msg.setProfile(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + +/** + * Class method variant: serializes the given message to binary data + * (in protobuf wire format), writing to the given BinaryWriter. + * @param {!proto.user.HelloRequest} message + * @param {!jspb.BinaryWriter} writer + */ +proto.user.HelloRequest.serializeBinaryToWriter = function(message, writer) { + message.serializeBinaryToWriter(writer); +}; + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.user.HelloRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + this.serializeBinaryToWriter(writer); + return writer.getResultBuffer(); +}; + +/** + * Serializes the message to binary data (in protobuf wire format), + * writing to the given BinaryWriter. + * @param {!jspb.BinaryWriter} writer + */ +proto.user.HelloRequest.prototype.serializeBinaryToWriter = function (writer) { + var f = undefined; + f = this.getProfile(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.user.Profile.serializeBinaryToWriter + ); + } +}; + +/** + * optional Profile profile = 1; + * @return {?proto.user.Profile} + */ +proto.user.HelloRequest.prototype.getProfile = function() { + return /** @type{?proto.user.Profile} */ ( + jspb.Message.getWrapperField(this, proto.user.Profile, 1)); +}; + +/** @param {?proto.user.Profile|undefined} value */ +proto.user.HelloRequest.prototype.setProfile = function(value) { + jspb.Message.setWrapperField(this, 1, value); +}; + +proto.user.HelloRequest.prototype.clearProfile = function() { + this.setProfile(undefined); +}; + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.user.HelloRequest.prototype.hasProfile = function() { + return jspb.Message.getField(this, 1) != null; +}; +// -------------------------------- + + + + + + + + + +/** + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.user.HelloReply = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.user.HelloReply, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.user.HelloReply.displayName = 'proto.user.HelloReply'; +} + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.user.HelloReply.prototype.toObject = function(opt_includeInstance) { + return proto.user.HelloReply.toObject(opt_includeInstance, this); +}; + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.user.HelloReply} msg The msg instance to transform. + * @return {!Object} + */ +proto.user.HelloReply.toObject = function(includeInstance, msg) { + var f, obj = { + profile: (f = msg.getProfile()) && proto.user.Profile.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.user.HelloReply} + */ +proto.user.HelloReply.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.user.HelloReply; + return proto.user.HelloReply.deserializeBinaryFromReader(msg, reader); +}; + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.user.HelloReply} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.user.HelloReply} + */ +proto.user.HelloReply.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.user.Profile; + reader.readMessage(value,proto.user.Profile.deserializeBinaryFromReader); + msg.setProfile(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + +/** + * Class method variant: serializes the given message to binary data + * (in protobuf wire format), writing to the given BinaryWriter. + * @param {!proto.user.HelloReply} message + * @param {!jspb.BinaryWriter} writer + */ +proto.user.HelloReply.serializeBinaryToWriter = function(message, writer) { + message.serializeBinaryToWriter(writer); +}; + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.user.HelloReply.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + this.serializeBinaryToWriter(writer); + return writer.getResultBuffer(); +}; + +/** + * Serializes the message to binary data (in protobuf wire format), + * writing to the given BinaryWriter. + * @param {!jspb.BinaryWriter} writer + */ +proto.user.HelloReply.prototype.serializeBinaryToWriter = function (writer) { + var f = undefined; + f = this.getProfile(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.user.Profile.serializeBinaryToWriter + ); + } +}; + +/** + * optional Profile profile = 1; + * @return {?proto.user.Profile} + */ +proto.user.HelloReply.prototype.getProfile = function() { + return /** @type{?proto.user.Profile} */ ( + jspb.Message.getWrapperField(this, proto.user.Profile, 1)); +}; + +/** @param {?proto.user.Profile|undefined} value */ +proto.user.HelloReply.prototype.setProfile = function(value) { + jspb.Message.setWrapperField(this, 1, value); +}; + +proto.user.HelloReply.prototype.clearProfile = function() { + this.setProfile(undefined); +}; + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.user.HelloReply.prototype.hasProfile = function() { + return jspb.Message.getField(this, 1) != null; +}; +// -------------------------------- + + + + + + + + + + +goog.object.extend(exports, proto.user); diff --git a/examples/js-grpc/output/user/user_grpc_pb.js b/examples/js-grpc/output/user/user_grpc_pb.js deleted file mode 100644 index 7c90957..0000000 --- a/examples/js-grpc/output/user/user_grpc_pb.js +++ /dev/null @@ -1,155 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - - -'use strict'; -var grpc = require('grpc'); -var user_user_pb = require('../user/user_pb.js'); - - - -function serialize_user_RegisterRequest(arg) { - if (!(arg instanceof user_user_pb.RegisterRequest)) { - throw new Error('Expected argument of type user.RegisterRequest'); - } - return new Buffer(arg.serializeBinary()); -} - -function deserialize_user_RegisterRequest(buffer_arg) { - return user_user_pb.RegisterRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_user_RegisterReply(arg) { - if (!(arg instanceof user_user_pb.RegisterReply)) { - throw new Error('Expected argument of type user.RegisterReply'); - } - return new Buffer(arg.serializeBinary()); -} - -function deserialize_user_RegisterReply(buffer_arg) { - return user_user_pb.RegisterReply.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_user_GetUserProfileRequest(arg) { - if (!(arg instanceof user_user_pb.GetUserProfileRequest)) { - throw new Error('Expected argument of type user.GetUserProfileRequest'); - } - return new Buffer(arg.serializeBinary()); -} - -function deserialize_user_GetUserProfileRequest(buffer_arg) { - return user_user_pb.GetUserProfileRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_user_GetUserProfileReply(arg) { - if (!(arg instanceof user_user_pb.GetUserProfileReply)) { - throw new Error('Expected argument of type user.GetUserProfileReply'); - } - return new Buffer(arg.serializeBinary()); -} - -function deserialize_user_GetUserProfileReply(buffer_arg) { - return user_user_pb.GetUserProfileReply.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_user_UpdateProfileRequest(arg) { - if (!(arg instanceof user_user_pb.UpdateProfileRequest)) { - throw new Error('Expected argument of type user.UpdateProfileRequest'); - } - return new Buffer(arg.serializeBinary()); -} - -function deserialize_user_UpdateProfileRequest(buffer_arg) { - return user_user_pb.UpdateProfileRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_user_UpdateProfileReply(arg) { - if (!(arg instanceof user_user_pb.UpdateProfileReply)) { - throw new Error('Expected argument of type user.UpdateProfileReply'); - } - return new Buffer(arg.serializeBinary()); -} - -function deserialize_user_UpdateProfileReply(buffer_arg) { - return user_user_pb.UpdateProfileReply.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_user_UploadDocumentRequest(arg) { - if (!(arg instanceof user_user_pb.UploadDocumentRequest)) { - throw new Error('Expected argument of type user.UploadDocumentRequest'); - } - return new Buffer(arg.serializeBinary()); -} - -function deserialize_user_UploadDocumentRequest(buffer_arg) { - return user_user_pb.UploadDocumentRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_user_UploadDocumentReply(arg) { - if (!(arg instanceof user_user_pb.UploadDocumentReply)) { - throw new Error('Expected argument of type user.UploadDocumentReply'); - } - return new Buffer(arg.serializeBinary()); -} - -function deserialize_user_UploadDocumentReply(buffer_arg) { - return user_user_pb.UploadDocumentReply.deserializeBinary(new Uint8Array(buffer_arg)); -} - - - - -var UserServiceService = exports.UserServiceService = { - - - register: { - path: '/user.UserService/Register', - requestStream: false, - responseStream: false, - requestType: user_user_pb.RegisterRequest, - responseType: user_user_pb.RegisterReply, - requestSerialize: serialize_user_RegisterRequest, - requestDeserialize: deserialize_user_RegisterRequest, - responseSerialize: serialize_user_RegisterReply, - responseDeserialize: deserialize_user_RegisterReply, - }, - - getUserProfile: { - path: '/user.UserService/GetUserProfile', - requestStream: false, - responseStream: false, - requestType: user_user_pb.GetUserProfileRequest, - responseType: user_user_pb.GetUserProfileReply, - requestSerialize: serialize_user_GetUserProfileRequest, - requestDeserialize: deserialize_user_GetUserProfileRequest, - responseSerialize: serialize_user_GetUserProfileReply, - responseDeserialize: deserialize_user_GetUserProfileReply, - }, - - updateProfile: { - path: '/user.UserService/UpdateProfile', - requestStream: false, - responseStream: false, - requestType: user_user_pb.UpdateProfileRequest, - responseType: user_user_pb.UpdateProfileReply, - requestSerialize: serialize_user_UpdateProfileRequest, - requestDeserialize: deserialize_user_UpdateProfileRequest, - responseSerialize: serialize_user_UpdateProfileReply, - responseDeserialize: deserialize_user_UpdateProfileReply, - }, - - uploadDocument: { - path: '/user.UserService/UploadDocument', - requestStream: false, - responseStream: false, - requestType: user_user_pb.UploadDocumentRequest, - responseType: user_user_pb.UploadDocumentReply, - requestSerialize: serialize_user_UploadDocumentRequest, - requestDeserialize: deserialize_user_UploadDocumentRequest, - responseSerialize: serialize_user_UploadDocumentReply, - responseDeserialize: deserialize_user_UploadDocumentReply, - }, - -} - -exports.UserServiceClient = grpc.makeGenericClientConstructor(UserServiceService); - diff --git a/examples/js-grpc/protos/helloworld.proto b/examples/js-grpc/protos/helloworld.proto new file mode 100644 index 0000000..80d01ab --- /dev/null +++ b/examples/js-grpc/protos/helloworld.proto @@ -0,0 +1,53 @@ +// Copyright 2015, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.$ + +syntax = "proto3"; + +option java_multiple_files = true; +option java_package = "io.grpc.examples.helloworld"; +option java_outer_classname = "HelloWorldProto"; +option objc_class_prefix = "HLW"; + +package helloworld; + +// The greeting service definition. +service Greeter { + // Sends a greeting + rpc SayHello (HelloRequest) returns (HelloReply) {} +} + +// The request message containing the user's name. +message HelloRequest { + string name = 1; +} + +// The response message containing the greetings +message HelloReply { + string message = 1; +} diff --git a/examples/js-grpc/protos/user.proto b/examples/js-grpc/protos/user.proto deleted file mode 100644 index 96e70db..0000000 --- a/examples/js-grpc/protos/user.proto +++ /dev/null @@ -1,66 +0,0 @@ -syntax = "proto3"; - -package user; - -option go_package = "github.com/united-drivers/models/go/user;userpb"; - -// import "google/api/annotations.proto"; - -// service UserService { -// rpc Register(RegisterRequest) returns (RegisterReply) {option (google.api.http).post = "/user/register";} -// rpc GetUserProfile(GetUserProfileRequest) returns (GetUserProfileReply) {option (google.api.http).post = "/user/get-user-profile";} -// rpc UpdateProfile(UpdateProfileRequest) returns (UpdateProfileReply) {option (google.api.http).post = "/user/update-profile";} -// rpc UploadDocument(UploadDocumentRequest) returns (UploadDocumentReply) {option (google.api.http).post = "/user/upload-document";} -// } - -service UserService { - rpc Register(RegisterRequest) returns (RegisterReply); - rpc GetUserProfile(GetUserProfileRequest) returns (GetUserProfileReply); - rpc UpdateProfile(UpdateProfileRequest) returns (UpdateProfileReply); - rpc UploadDocument(UploadDocumentRequest) returns (UploadDocumentReply); -} - -message UpdateProfileRequest { - Profile profile = 1; -} - -message UpdateProfileReply { - string err_msg = 1; -} - -message UploadDocumentRequest { - string path = 1; - string document = 2; -} - -message UploadDocumentReply { - string err_msg = 1; -} - -message Profile { - string id = 1; - string email = 2; - string first_name = 3; - string last_name = 4; - string picture = 5; - string promo_code = 6; - string phone_number = 7; -} - -message RegisterRequest { - string first_name = 1; - string last_name = 2; - string email = 3; - string phone_number = 4; -} - -message RegisterReply { - string err_msg = 1; -} - -message GetUserProfileRequest {} - -message GetUserProfileReply { - Profile profile = 1; - string err_msg = 2; -} diff --git a/examples/js-grpc/templates/{{.File.Package}}/{{.File.Package}}_grpc_pb.js.tmpl b/examples/js-grpc/templates/{{.File.Package}}/{{.File.Package}}_grpc_pb.js.tmpl index b14bf29..596bb5b 100644 --- a/examples/js-grpc/templates/{{.File.Package}}/{{.File.Package}}_grpc_pb.js.tmpl +++ b/examples/js-grpc/templates/{{.File.Package}}/{{.File.Package}}_grpc_pb.js.tmpl @@ -1,53 +1,43 @@ // GENERATED CODE -- DO NOT EDIT! {{$Package:=.File.Package}} - 'use strict'; var grpc = require('grpc'); -var {{$Package}}_{{$Package}}_pb = require('../{{$Package}}/{{$Package}}_pb.js'); - -{{range .File.Service}} -{{range .Method}} +var {{$Package}}_pb = require('./{{$Package}}_pb.js'); +{{range .File.Service}}{{range .Method}} function serialize_{{$Package}}_{{.InputType | splitArray "." | last}}(arg) { - if (!(arg instanceof {{$Package}}_{{$Package}}_pb.{{.InputType | splitArray "." | last}})) { + if (!(arg instanceof {{$Package}}_pb.{{.InputType | splitArray "." | last}})) { throw new Error('Expected argument of type {{$Package}}.{{.InputType | splitArray "." | last}}'); } return new Buffer(arg.serializeBinary()); } function deserialize_{{$Package}}_{{.InputType | splitArray "." | last}}(buffer_arg) { - return {{$Package}}_{{$Package}}_pb.{{.InputType | splitArray "." | last}}.deserializeBinary(new Uint8Array(buffer_arg)); + return {{$Package}}_pb.{{.InputType | splitArray "." | last}}.deserializeBinary(new Uint8Array(buffer_arg)); } function serialize_{{$Package}}_{{.OutputType | splitArray "." | last}}(arg) { - if (!(arg instanceof {{$Package}}_{{$Package}}_pb.{{.OutputType | splitArray "." | last}})) { + if (!(arg instanceof {{$Package}}_pb.{{.OutputType | splitArray "." | last}})) { throw new Error('Expected argument of type {{$Package}}.{{.OutputType | splitArray "." | last}}'); } return new Buffer(arg.serializeBinary()); } function deserialize_{{$Package}}_{{.OutputType | splitArray "." | last}}(buffer_arg) { - return {{$Package}}_{{$Package}}_pb.{{.OutputType | splitArray "." | last}}.deserializeBinary(new Uint8Array(buffer_arg)); -} -{{end}} -{{end}} - + return {{$Package}}_pb.{{.OutputType | splitArray "." | last}}.deserializeBinary(new Uint8Array(buffer_arg)); +}{{end}}{{end}} {{range .File.Service}} var {{.Name}}Service = exports.{{.Name}}Service = { -{{$serviceName:=.Name}} -{{range .Method}} - {{.Name | lowerFirst}}: { + {{$serviceName:=.Name}}{{range .Method}}{{.Name | lowerFirst}}: { path: '/{{$Package}}.{{$serviceName}}/{{.Name}}', requestStream: {{.ClientStreaming | default "false"}}, responseStream: {{.ServerStreaming | default "false"}}, - requestType: {{$Package}}_{{$Package}}_pb.{{.InputType | splitArray "." | last}}, - responseType: {{$Package}}_{{$Package}}_pb.{{.OutputType | splitArray "." | last}}, + requestType: {{$Package}}_pb.{{.InputType | splitArray "." | last}}, + responseType: {{$Package}}_pb.{{.OutputType | splitArray "." | last}}, requestSerialize: serialize_{{$Package}}_{{.InputType | splitArray "." | last}}, requestDeserialize: deserialize_{{$Package}}_{{.InputType | splitArray "." | last}}, responseSerialize: serialize_{{$Package}}_{{.OutputType | splitArray "." | last}}, responseDeserialize: deserialize_{{$Package}}_{{.OutputType | splitArray "." | last}}, - }, -{{end}} + },{{end}} } -exports.{{.Name}}Client = grpc.makeGenericClientConstructor({{.Name}}Service); -{{end}} +exports.{{.Name}}Client = grpc.makeGenericClientConstructor({{.Name}}Service);{{end}} diff --git a/examples/js-grpc/templates/{{.File.Package}}/{{.File.Package}}_pb.js.tmpl b/examples/js-grpc/templates/{{.File.Package}}/{{.File.Package}}_pb.js.tmpl new file mode 100644 index 0000000..e33a009 --- /dev/null +++ b/examples/js-grpc/templates/{{.File.Package}}/{{.File.Package}}_pb.js.tmpl @@ -0,0 +1,176 @@ +// GENERATED CODE -- DO NOT EDIT! +{{$Package:=.File.Package}} + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = Function('return this')(); + +{{range .File.MessageType}} +goog.exportSymbol('proto.user.{{.Name}}', null, global); +{{end}} + +{{range .File.MessageType}} +/** + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.user.{{.Name}} = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.user.{{.Name}}, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.user.{{.Name}}.displayName = 'proto.user.{{.Name}}'; +} + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.user.{{.Name}}.prototype.toObject = function(opt_includeInstance) { + return proto.user.{{.Name}}.toObject(opt_includeInstance, this); +}; + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.user.{{.Name}}} msg The msg instance to transform. + * @return {!Object} + */ +proto.user.{{.Name}}.toObject = function(includeInstance, msg) { + var f, obj = { + profile: (f = msg.getProfile()) && proto.user.Profile.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.user.{{.Name}}} + */ +proto.user.{{.Name}}.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.user.{{.Name}}; + return proto.user.{{.Name}}.deserializeBinaryFromReader(msg, reader); +}; + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.user.{{.Name}}} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.user.{{.Name}}} + */ +proto.user.{{.Name}}.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.user.Profile; + reader.readMessage(value,proto.user.Profile.deserializeBinaryFromReader); + msg.setProfile(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + +/** + * Class method variant: serializes the given message to binary data + * (in protobuf wire format), writing to the given BinaryWriter. + * @param {!proto.user.{{.Name}}} message + * @param {!jspb.BinaryWriter} writer + */ +proto.user.{{.Name}}.serializeBinaryToWriter = function(message, writer) { + message.serializeBinaryToWriter(writer); +}; + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.user.{{.Name}}.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + this.serializeBinaryToWriter(writer); + return writer.getResultBuffer(); +}; + +/** + * Serializes the message to binary data (in protobuf wire format), + * writing to the given BinaryWriter. + * @param {!jspb.BinaryWriter} writer + */ +proto.user.{{.Name}}.prototype.serializeBinaryToWriter = function (writer) { + var f = undefined; + f = this.getProfile(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.user.Profile.serializeBinaryToWriter + ); + } +}; + +/** + * optional Profile profile = 1; + * @return {?proto.user.Profile} + */ +proto.user.{{.Name}}.prototype.getProfile = function() { + return /** @type{?proto.user.Profile} */ ( + jspb.Message.getWrapperField(this, proto.user.Profile, 1)); +}; + +/** @param {?proto.user.Profile|undefined} value */ +proto.user.{{.Name}}.prototype.setProfile = function(value) { + jspb.Message.setWrapperField(this, 1, value); +}; + +proto.user.{{.Name}}.prototype.clearProfile = function() { + this.setProfile(undefined); +}; + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.user.{{.Name}}.prototype.hasProfile = function() { + return jspb.Message.getField(this, 1) != null; +}; +// -------------------------------- + + + + + + + + +{{end}} + +goog.object.extend(exports, proto.user);