diff --git a/gremlin-client/src/executeHandler.js b/gremlin-client/src/executeHandler.js index 8f04258..888c529 100644 --- a/gremlin-client/src/executeHandler.js +++ b/gremlin-client/src/executeHandler.js @@ -1,29 +1,10 @@ import highland from 'highland'; -import _ from 'lodash'; - -function defaultExecuteHandler(messageStream, callback) { - let errored = false; - let objectMode = false; +const defaultExecuteHandler = (messageStream, callback) => highland(messageStream) - .stopOnError(err => { - // TODO: this does not seem to halt the stream properly, and make - // the callback being fired twice. We need to get rid of the ugly - // errored variable check. - errored = true; - callback(err); - }) - .map(({ result: { data } }) => { - objectMode = !_.isArray(data); - - return data; - }) + .map(({ result: { data } }) => data) .sequence() - .toArray(results => { - if (!errored) { - callback(null, objectMode ? results[0] : results); - } - }); -} + .collect() + .toCallback(callback); export default defaultExecuteHandler;