You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/02/01 15:30:36 UTC

[25/50] [abbrv] tinkerpop git commit: Remove utils.toPromise()

Remove utils.toPromise()


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

Branch: refs/heads/TINKERPOP-1857
Commit: af718f7ca53111b371903471ae76841aa7e06861
Parents: f2f9729
Author: Jorge Bay Gondra <jo...@gmail.com>
Authored: Mon Jan 22 11:19:07 2018 +0100
Committer: Jorge Bay Gondra <jo...@gmail.com>
Committed: Mon Jan 22 11:19:07 2018 +0100

----------------------------------------------------------------------
 .../lib/driver/driver-remote-connection.js      | 68 +++++++++-----------
 .../lib/driver/remote-connection.js             |  9 ++-
 .../lib/process/traversal-strategy.js           | 20 ++----
 .../javascript/gremlin-javascript/lib/utils.js  | 31 ---------
 .../test/unit/traversal-test.js                 | 13 ++--
 5 files changed, 44 insertions(+), 97 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/af718f7c/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js
index ac3fb0f..5587fd6 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js
@@ -59,16 +59,13 @@ class DriverRemoteConnection extends RemoteConnection {
       pfx: options.pfx,
       rejectUnauthorized: options.rejectUnauthorized
     });
-    var self = this;
-    this._ws.on('open', function opened () {
-      self.isOpen = true;
-      if (self._openCallback) {
-        self._openCallback();
+    this._ws.on('open', () => {
+      this.isOpen = true;
+      if (this._openCallback) {
+        this._openCallback();
       }
     });
-    this._ws.on('message', function incoming (data) {
-      self._handleMessage(data);
-    });
+    this._ws.on('message', data => this._handleMessage(data));
     // A map containing the request id and the handler
     this._responseHandlers = {};
     this._reader = options.reader || new serializer.GraphSONReader();
@@ -86,39 +83,33 @@ class DriverRemoteConnection extends RemoteConnection {
    * Opens the connection, if its not already opened.
    * @returns {Promise}
    */
-  open(promiseFactory) {
+  open() {
     if (this._closePromise) {
-      return this._openPromise = utils.toPromise(promiseFactory, function promiseHandler(callback) {
-        callback(new Error('Connection has been closed'));
-      });
+      return this._openPromise = Promise.reject(new Error('Connection has been closed'));
+    }
+    if (this.isOpen) {
+      return Promise.resolve();
     }
     if (this._openPromise) {
       return this._openPromise;
     }
-    const self = this;
-    return this._openPromise = utils.toPromise(promiseFactory, function promiseHandler(callback) {
-      if (self.isOpen) {
-        return callback();
-      }
-      // It will be invoked when opened
-      self._openCallback = callback;
+    return this._openPromise = new Promise((resolve, reject) => {
+      // Set the callback that will be invoked once the WS is opened
+      this._openCallback = err => err ? reject(err) : resolve();
     });
   }
 
   /** @override */
-  submit(bytecode, promiseFactory) {
-    const self = this;
-    return this.open().then(function () {
-      return utils.toPromise(promiseFactory, function promiseHandler(callback) {
-        const requestId = getUuid();
-        self._responseHandlers[requestId] = {
-          callback: callback,
-          result: null
-        };
-        const message = bufferFromString(self._header + JSON.stringify(self._getRequest(requestId, bytecode)));
-        self._ws.send(message);
-      });
-    });
+  submit(bytecode) {
+    return this.open().then(() => new Promise((resolve, reject) => {
+      const requestId = getUuid();
+      this._responseHandlers[requestId] = {
+        callback: (err, result) => err ? reject(err) : resolve(result),
+        result: null
+      };
+      const message = bufferFromString(this._header + JSON.stringify(this._getRequest(requestId, bytecode)));
+      this._ws.send(message);
+    }));
   }
 
   _getRequest(id, bytecode) {
@@ -163,17 +154,16 @@ class DriverRemoteConnection extends RemoteConnection {
    * Closes the Connection.
    * @return {Promise}
    */
-  close(promiseFactory) {
+  close() {
     if (this._closePromise) {
       return this._closePromise;
     }
-    const self = this;
-    return this._closePromise = utils.toPromise(promiseFactory, function promiseHandler(callback) {
-      self._ws.on('close', function () {
-        self.isOpen = false;
-        callback();
+    this._closePromise = new Promise(resolve => {
+      this._ws.on('close', function () {
+        this.isOpen = false;
+        resolve();
       });
-      self._ws.close();
+      this._ws.close();
     });
   }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/af718f7c/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/remote-connection.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/remote-connection.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/remote-connection.js
index 37f3d0e..2672ff4 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/remote-connection.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/remote-connection.js
@@ -33,10 +33,9 @@ class RemoteConnection {
   /**
    * @abstract
    * @param {Bytecode} bytecode
-   * @param {Function|undefined} promiseFactory
    * @returns {Promise}
    */
-  submit(bytecode, promiseFactory) {
+  submit(bytecode) {
     throw new Error('submit() was not implemented');
   };
 }
@@ -60,11 +59,11 @@ class RemoteStrategy extends TraversalStrategy {
   }
 
   /** @override */
-  apply(traversal, promiseFactory) {
+  apply(traversal) {
     if (traversal.traversers) {
-      return utils.resolvedPromise(promiseFactory);
+      return Promise.resolve();
     }
-    return this.connection.submit(traversal.getBytecode(), promiseFactory).then(function (remoteTraversal) {
+    return this.connection.submit(traversal.getBytecode()).then(function (remoteTraversal) {
       traversal.sideEffects = remoteTraversal.sideEffects;
       traversal.traversers = remoteTraversal.traversers;
     });

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/af718f7c/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal-strategy.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal-strategy.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal-strategy.js
index fbc3fba..d3d97b8 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal-strategy.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal-strategy.js
@@ -28,22 +28,16 @@ class TraversalStrategies {
   /**
    * Creates a new instance of TraversalStrategies.
    * @param {TraversalStrategies} [parent] The parent strategies from where to clone the values from.
-   * @param {Function} [promiseFactory] The factory used to create the A+ Promise instances. Use it when you want to
-   * create Promise instances without using ECMAScript Promise constructor, ie: bluebird or Q promises.
    * @constructor
    */
-  constructor(parent, promiseFactory) {
+  constructor(parent) {
     if (parent) {
       // Clone the strategies
       this.strategies = parent.strategies.slice(0);
-      this.promiseFactory = parent.promiseFactory;
     }
     else {
       this.strategies = [];
     }
-    if (promiseFactory) {
-      this.promiseFactory = promiseFactory;
-    }
   }
 
   /** @param {TraversalStrategy} strategy */
@@ -57,12 +51,9 @@ class TraversalStrategies {
    */
   applyStrategies(traversal) {
     // Apply all strategies serially
-    const self = this;
-    return this.strategies.reduce(function reduceItem(promise, strategy) {
-      return promise.then(function () {
-        return strategy.apply(traversal, self.promiseFactory);
-      });
-    }, utils.resolvedPromise(this.promiseFactory));
+    return this.strategies.reduce((promise, strategy) => {
+      return promise.then(() => strategy.apply(traversal));
+    }, Promise.resolve());
   }
 }
 
@@ -71,10 +62,9 @@ class TraversalStrategy {
   /**
    * @abstract
    * @param {Traversal} traversal
-   * @param {Function|undefined} promiseFactory
    * @returns {Promise}
    */
-  apply(traversal, promiseFactory) {
+  apply(traversal) {
 
   }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/af718f7c/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
index bf87368..c864efd 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
@@ -27,37 +27,6 @@ exports.parseArgs = function parseArgs() {
   return (arguments.length === 1 ? [ arguments[0] ] : Array.apply(null, arguments));
 };
 
-/**
- * @param {Function} handler
- * @returns {Promise}
- */
-function defaultPromiseFactory(handler) {
-  return new Promise(function executor(resolve, reject) {
-    handler(function handlerCallback(err, result) {
-      if (err) {
-        return reject(err);
-      }
-      resolve(result);
-    });
-  });
-}
-
-/**
- * Gets a resolved Promise instance.
- * @param {Function} promiseFactory
- * @returns {Promise}
- */
-exports.resolvedPromise = function (promiseFactory) {
-  return toPromise(promiseFactory, function handler(cb) {
-    cb();
-  });
-};
-
-const toPromise = exports.toPromise = function toPromise(promiseFactory, handler) {
-  promiseFactory = promiseFactory || defaultPromiseFactory;
-  return promiseFactory(handler);
-};
-
 exports.toLong = function toLong(value) {
   return new Long(value);
 };

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/af718f7c/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
index 9310143..130a218 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
@@ -25,7 +25,6 @@
 const assert = require('assert');
 const expect = require('chai').expect;
 const graph = require('../../lib/structure/graph');
-const utils = require('../../lib/utils');
 const t = require('../../lib/process/traversal');
 const TraversalStrategies = require('../../lib/process/traversal-strategy').TraversalStrategies;
 
@@ -64,7 +63,7 @@ describe('Traversal', function () {
       const strategyMock = {
         apply: function (traversal) {
           traversal.traversers = [ new t.Traverser(1, 1), new t.Traverser(2, 1) ];
-          return utils.resolvedPromise();
+          return Promise.resolve();
         }
       };
       const strategies = new TraversalStrategies();
@@ -92,7 +91,7 @@ describe('Traversal', function () {
       const strategyMock = {
         apply: function (traversal) {
           traversal.traversers = [ new t.Traverser(1, 2), new t.Traverser(2, 1) ];
-          return utils.resolvedPromise();
+          return Promise.resolve();
         }
       };
       const strategies = new TraversalStrategies();
@@ -128,7 +127,7 @@ describe('Traversal', function () {
       const strategyMock = {
         apply: function (traversal) {
           traversal.traversers = [ new t.Traverser('a', 1), new t.Traverser('b', 1) ];
-          return utils.resolvedPromise();
+          return Promise.resolve();
         }
       };
       const strategies = new TraversalStrategies();
@@ -144,7 +143,7 @@ describe('Traversal', function () {
       const strategyMock = {
         apply: function (traversal) {
           traversal.traversers = [];
-          return utils.resolvedPromise();
+          return Promise.resolve();
         }
       };
       const strategies = new TraversalStrategies();
@@ -161,7 +160,7 @@ describe('Traversal', function () {
         apply: function (traversal) {
           traversal.traversers = [ new t.Traverser(1, 1), new t.Traverser(2, 3), new t.Traverser(3, 2),
             new t.Traverser(4, 1) ];
-          return utils.resolvedPromise();
+          return Promise.resolve();
         }
       };
       const strategies = new TraversalStrategies();
@@ -181,7 +180,7 @@ describe('Traversal', function () {
         apply: function (traversal) {
           applied = true;
           traversal.traversers = [ new t.Traverser('a', 1), new t.Traverser('b', 1) ];
-          return utils.resolvedPromise();
+          return Promise.resolve();
         }
       };
       const strategies = new TraversalStrategies();