Comparing version 0.4.0 to 1.0.0
@@ -52,2 +52,3 @@ 'use strict'; | ||
// TODO: add test case for this | ||
// prevents any listeners from propagating | ||
if (!options.get('notifyListeners', true)) { | ||
@@ -105,3 +106,3 @@ return; | ||
* | ||
* event may be one of: any, update, swap, add, remove, delete | ||
* event may be one of: any, update, add, remove, delete | ||
* | ||
@@ -135,3 +136,3 @@ * listener function would be added to a lookup table that is shared among all | ||
var unsubbed = false; | ||
return function () { | ||
return function () /* unobserve */{ | ||
if (!unsubbed) { | ||
@@ -147,3 +148,3 @@ unsubbed = true; | ||
* | ||
* event may be one of: any, update, swap, add, remove, delete | ||
* event may be one of: any, update, add, remove, delete | ||
* | ||
@@ -178,3 +179,3 @@ * @param {String} event | ||
* | ||
* event may be one of: any, update, swap, add, remove, delete | ||
* event may be one of: any, update, add, remove, delete | ||
* | ||
@@ -196,3 +197,3 @@ * Returns this for chaining. | ||
* | ||
* event may be one of: any, update, swap, add, remove, delete | ||
* event may be one of: any, update, add, remove, delete | ||
* | ||
@@ -235,3 +236,2 @@ * Returns this for chaining. | ||
case 'update': | ||
case 'swap': | ||
listenerKey = LISTENERS_UPDATED; | ||
@@ -247,3 +247,3 @@ break; | ||
default: | ||
throw Error('Invalid event: ' + event + '. Must be one of: any, update, swap, add, delete'); | ||
throw Error('Invalid event: ' + event + '. Must be one of: any, update, add, delete'); | ||
break; | ||
@@ -266,3 +266,3 @@ } | ||
function callListeners(observers, currentNew, currentOld) { | ||
var pathToChange = arguments[3] === undefined ? void 0 : arguments[3]; | ||
var pathOriginChange = arguments.length <= 3 || arguments[3] === undefined ? [] : arguments[3]; | ||
@@ -273,3 +273,2 @@ var newSet = currentNew !== NOT_SET; | ||
var __currentOld = oldSet ? currentOld : void 0; | ||
var args = [__currentNew, __currentOld, pathToChange]; | ||
var observersAny = observers.observersAny; | ||
@@ -281,13 +280,13 @@ var observersAdd = observers.observersAdd; | ||
if (oldSet && newSet) { | ||
callObservers(observersUpdate, observers, args); | ||
callObservers(observersUpdate, observers, [__currentNew, __currentOld, pathOriginChange.slice()]); | ||
} else if (!oldSet && newSet) { | ||
callObservers(observersAdd, observers, args); | ||
callObservers(observersAdd, observers, [__currentNew, pathOriginChange.slice()]); | ||
} else if (oldSet && !newSet) { | ||
callObservers(observersDelete, observers, args); | ||
callObservers(observersDelete, observers, [__currentOld, pathOriginChange.slice()]); | ||
} | ||
callObservers(observersAny, observers, args); | ||
callObservers(observersAny, observers, [__currentNew, __currentOld, pathOriginChange.slice()]); | ||
} | ||
function notifyListeners(options, path, newRoot, oldRoot) { | ||
var propagate = arguments[4] === undefined ? true : arguments[4]; | ||
var propagate = arguments.length <= 4 || arguments[4] === undefined ? true : arguments[4]; | ||
@@ -303,3 +302,3 @@ // fetch listeners | ||
var len = path.length; | ||
var pathToChange = path.slice(); | ||
var pathOriginChange = path; | ||
@@ -314,7 +313,6 @@ // notify listeners for every subpath of path | ||
if (propagate) { | ||
callListeners(extractListeners(current), currentNew, currentOld, pathToChange); | ||
callListeners(extractListeners(current), currentNew, currentOld, pathOriginChange); | ||
} | ||
var atom = path[n++]; | ||
pathToChange.shift(); | ||
current = current.get(atom, NOT_SET); | ||
@@ -325,3 +323,3 @@ currentNew = currentNew === NOT_SET ? NOT_SET : currentNew.get(atom, NOT_SET); | ||
return __notifyListeners(current, currentNew, currentOld, propagate); | ||
return __notifyListeners(current, currentNew, currentOld, pathOriginChange, propagate); | ||
} | ||
@@ -338,7 +336,8 @@ | ||
* @param {any} currentOld [description] | ||
* @param {Array} pathOriginChange [description] | ||
* @param {Boolean} propagate [description] | ||
*/ | ||
// TODO: refactor listeners.forEach as abstracted function | ||
function __notifyListeners(listeners, currentNew, currentOld) { | ||
var propagate = arguments[3] === undefined ? true : arguments[3]; | ||
function __notifyListeners(listeners, currentNew, currentOld, pathOriginChange) { | ||
var propagate = arguments.length <= 4 || arguments[4] === undefined ? true : arguments[4]; | ||
@@ -350,3 +349,3 @@ if (currentOld === currentNew || listeners === NOT_SET) { | ||
var observers = extractListeners(listeners); | ||
callListeners(observers, currentNew, currentOld); | ||
callListeners(observers, currentNew, currentOld, pathOriginChange); | ||
var listenersSize = listeners.size - observers.count; | ||
@@ -382,3 +381,3 @@ | ||
var __currentOld = isOld ? value : NOT_SET; | ||
__notifyListeners(subListeners, __currentNew, __currentOld); | ||
__notifyListeners(subListeners, __currentNew, __currentOld, pathOriginChange); | ||
}); | ||
@@ -398,3 +397,3 @@ return { | ||
var __currentOld = isOld ? tree.get(key, NOT_SET) : NOT_SET; | ||
__notifyListeners(subListeners, __currentNew, __currentOld); | ||
__notifyListeners(subListeners, __currentNew, __currentOld, pathOriginChange); | ||
}); | ||
@@ -430,3 +429,3 @@ return { | ||
var __currentOld = currentOld.get(key, NOT_SET); | ||
__notifyListeners(subListeners, __currentNew, __currentOld); | ||
__notifyListeners(subListeners, __currentNew, __currentOld, pathOriginChange); | ||
}); | ||
@@ -443,3 +442,3 @@ return; | ||
var __currentOld = currentOld.get(key, NOT_SET); | ||
__notifyListeners(subListeners, __currentNew, __currentOld); | ||
__notifyListeners(subListeners, __currentNew, __currentOld, pathOriginChange); | ||
}); | ||
@@ -457,3 +456,3 @@ | ||
} | ||
__notifyListeners(subListeners, __currentNew, __currentOld); | ||
__notifyListeners(subListeners, __currentNew, __currentOld, pathOriginChange); | ||
}); | ||
@@ -471,3 +470,3 @@ | ||
// const __currentOld = currentOld.get(key, NOT_SET); | ||
// __notifyListeners(subListeners, __currentNew, __currentOld); | ||
// __notifyListeners(subListeners, __currentNew, __currentOld, pathOriginChange); | ||
// }); | ||
@@ -495,3 +494,2 @@ } | ||
}; | ||
} | ||
/* unobserve */ | ||
} |
{ | ||
"name": "probe", | ||
"version": "0.4.0", | ||
"version": "1.0.0", | ||
"description": "Observable Providence cursors", | ||
@@ -39,4 +39,4 @@ "main": "modules/index.js", | ||
"devDependencies": { | ||
"babel": "^5.4.7", | ||
"chai": "^2.3.0", | ||
"babel": "^5.8.21", | ||
"chai": "^3.2.0", | ||
"mocha": "^2.2.5" | ||
@@ -43,0 +43,0 @@ }, |
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
1
16882
3
392
2
0