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();