Repository: thrift
Updated Branches:
  refs/heads/master c60b69b37 -> de112fbb0


change js generator for simple using in object params
Client: node.js

This closes #1034


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/de112fbb
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/de112fbb
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/de112fbb

Branch: refs/heads/master
Commit: de112fbb0d7f2139ef107211e82e03b574f890d0
Parents: c60b69b
Author: jiangq <jiangq.lea...@gmail.com>
Authored: Thu Apr 6 13:40:59 2017 +0800
Committer: James E. King, III <jk...@apache.org>
Committed: Sat Aug 12 16:23:06 2017 -0700

----------------------------------------------------------------------
 .../cpp/src/thrift/generate/t_js_generator.cc    | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/de112fbb/compiler/cpp/src/thrift/generate/t_js_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_js_generator.cc 
b/compiler/cpp/src/thrift/generate/t_js_generator.cc
index 57ec88e..10b0ee1 100644
--- a/compiler/cpp/src/thrift/generate/t_js_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_js_generator.cc
@@ -1483,11 +1483,20 @@ void t_js_generator::generate_service_client(t_service* 
tservice) {
                  << "', " << messageType << ", this.seqid);" << endl;
     }
 
-    f_service_ << indent() << "var args = new " << argsname << "();" << endl;
-
-    for (fld_iter = fields.begin(); fld_iter != fields.end(); ++fld_iter) {
-      f_service_ << indent() << "args." << (*fld_iter)->get_name() << " = "
-                 << (*fld_iter)->get_name() << ";" << endl;
+    if (fields.size() > 0){
+      f_service_ << indent() << "var params = {" << endl;
+      for (fld_iter = fields.begin(); fld_iter != fields.end(); ++fld_iter) {
+        f_service_ << indent() << indent() << (*fld_iter)->get_name() << ": " 
<< (*fld_iter)->get_name();
+        if (fld_iter != fields.end()-1) {
+          f_service_ << "," << endl;
+        } else {
+          f_service_ << endl;
+        }
+      }
+      f_service_ << indent() << "};" << endl;
+      f_service_ << indent() << "var args = new " << argsname << "(params);" 
<< endl;
+    } else {
+      f_service_ << indent() << "var args = new " << argsname << "();" << endl;
     }
 
     // Write to the stream

Reply via email to