From 50b8644145d3461fd838d881aa6ce3ec8628334b Mon Sep 17 00:00:00 2001 From: okland Date: Mon, 28 Mar 2016 16:08:21 +0300 Subject: [PATCH] Update observe_multiplex.js Added support for bulk ended operation. --- packages/mongo/observe_multiplex.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/mongo/observe_multiplex.js b/packages/mongo/observe_multiplex.js index 2a68566d8ab..5cefe922f12 100644 --- a/packages/mongo/observe_multiplex.js +++ b/packages/mongo/observe_multiplex.js @@ -141,9 +141,9 @@ _.extend(ObserveMultiplexer.prototype, { callbackNames: function () { var self = this; if (self._ordered) - return ["addedBefore", "changed", "movedBefore", "removed"]; + return ["addedBefore", "changed", "movedBefore", "removed", "bulkEnded"]; else - return ["added", "changed", "removed"]; + return ["added", "changed", "removed", "bulkEnded"]; }, _ready: function () { return this._readyFuture.isResolved(); @@ -160,12 +160,14 @@ _.extend(ObserveMultiplexer.prototype, { // state from their arguments (assuming that their supplied callbacks // don't) and skip this clone. Currently 'changed' hangs on to state // though. - self._cache.applyChange[callbackName].apply(null, EJSON.clone(args)); - + if (callbackName !== "bulkEnded" ) { + self._cache.applyChange[callbackName].apply(null, EJSON.clone(args)); + } + // If we haven't finished the initial adds, then we should only be getting // adds. if (!self._ready() && - (callbackName !== 'added' && callbackName !== 'addedBefore')) { + (callbackName !== 'added' && callbackName !== 'addedBefore' && callbackName !== 'bulkEnded')) { throw new Error("Got " + callbackName + " during initial adds"); } @@ -207,6 +209,7 @@ _.extend(ObserveMultiplexer.prototype, { else add(id, fields); }); + handle._bulkEnded && handle._bulkEnded(); } });