Github user jorgebay commented on a diff in the pull request:
https://github.com/apache/tinkerpop/pull/922#discussion_r219471784
--- Diff:
gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/client.js
---
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+'use strict';
+
+const DriverRemoteConnection = require('./driver-remote-connection');
+const Bytecode = require('../process/bytecode');
+
+class Client {
+ /**
+ * Creates a new instance of DriverRemoteConnection.
+ * @param {String} url The resource uri.
+ * @param {Object} [options] The connection options.
+ * @param {Array} [options.ca] Trusted certificates.
+ * @param {String|Array|Buffer} [options.cert] The certificate key.
+ * @param {String} [options.mimeType] The mime type to use.
+ * @param {String|Buffer} [options.pfx] The private key, certificate,
and CA certs.
+ * @param {GraphSONReader} [options.reader] The reader to use.
+ * @param {Boolean} [options.rejectUnauthorized] Determines whether to
verify or not the server certificate.
+ * @param {String} [options.traversalSource] The traversal source.
Defaults to: 'g'.
+ * @param {GraphSONWriter} [options.writer] The writer to use.
+ * @param {Authenticator} [options.authenticator] The authentication
handler to use.
+ * @constructor
+ */
+ constructor(url, options) {
+ this._options = options;
+ this._connection = new DriverRemoteConnection(url, options);
+ }
+
+ /**
+ * Opens the underlying connection to the Gremlin Server, if it's not
already opened.
+ * @returns {Promise}
+ */
+ open() {
+ return this._connection.open();
+ }
+
+ /**
+ * Send a request to the Gremlin Server, can send a script or bytecode
steps.
+ * @param {Bytecode|string} message The bytecode or script to send
+ * @param {Object} bindings The script bindings, if any.
+ * @returns {Promise}
+ */
+ submit(message, bindings) {
+ if (typeof message === 'string' || message instanceof String) {
+ const args = {
+ 'gremlin': message,
+ 'bindings': bindings,
--- End diff --
oh, I see that `args` are adapted by the `Connection` afterwards, never
mind my previous comment.
@mattallenuk: Can we include a test containing a binding like a `Long` or
`Set` or any type that is not a native js type?
---