From f7deff3d82497686a76678d92c172eba0e5dff2e Mon Sep 17 00:00:00 2001 From: Richard Willis Date: Wed, 22 Apr 2020 19:25:16 +0100 Subject: [PATCH] grpc-tools: add grpc_js grpc_out param This is a minor change to use the pure JavaScript gRPC Client `@grpc/grpc-js` instead of the (now deprecated `grpc` node package). --- packages/grpc-tools/src/node_generator.cc | 3 ++- packages/grpc-tools/src/node_generator.h | 2 ++ packages/grpc-tools/src/node_plugin.cc | 9 ++++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/grpc-tools/src/node_generator.cc b/packages/grpc-tools/src/node_generator.cc index 77a5abfd..b4aad0e3 100644 --- a/packages/grpc-tools/src/node_generator.cc +++ b/packages/grpc-tools/src/node_generator.cc @@ -212,7 +212,8 @@ void PrintService(const ServiceDescriptor* service, Printer* out, void PrintImports(const FileDescriptor* file, Printer* out, const Parameters& params) { if (!params.generate_package_definition) { - out->Print("var grpc = require('grpc');\n"); + grpc::string package = params.grpc_js ? "@grpc/grpc-js" : "grpc"; + out->Print("var grpc = require('$package$');\n", "package", package); } if (file->message_type_count() > 0) { grpc::string file_path = diff --git a/packages/grpc-tools/src/node_generator.h b/packages/grpc-tools/src/node_generator.h index c73eca0c..a88d54a9 100644 --- a/packages/grpc-tools/src/node_generator.h +++ b/packages/grpc-tools/src/node_generator.h @@ -26,6 +26,8 @@ namespace grpc_node_generator { struct Parameters { // Generate a package definition object instead of Client classes bool generate_package_definition; + // Use pure JavaScript gRPC Client + bool grpc_js; }; grpc::string GenerateFile(const grpc::protobuf::FileDescriptor* file, diff --git a/packages/grpc-tools/src/node_plugin.cc b/packages/grpc-tools/src/node_plugin.cc index 4ed11081..9f83578b 100644 --- a/packages/grpc-tools/src/node_plugin.cc +++ b/packages/grpc-tools/src/node_plugin.cc @@ -38,13 +38,16 @@ class NodeGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { grpc::string* error) const { grpc_node_generator::Parameters generator_parameters; generator_parameters.generate_package_definition = false; + generator_parameters.grpc_js = false; if (!parameter.empty()) { - std::vector parameters_list = - grpc_generator::tokenize(parameter, ","); - for (auto parameter_string = parameters_list.begin(); + std::vector parameters_list = + grpc_generator::tokenize(parameter, ","); + for (auto parameter_string = parameters_list.begin(); parameter_string != parameters_list.end(); parameter_string++) { if (*parameter_string == "generate_package_definition") { generator_parameters.generate_package_definition = true; + } else if (*parameter_string == "grpc_js") { + generator_parameters.grpc_js = true; } } }