@the-grid/immutable
Advanced tools
Comparing version 1.1.8 to 1.1.9
@@ -23,2 +23,3 @@ 'use strict'; | ||
var EMPTY_ARRAY = []; | ||
var EMPTY_OBJ = {}; | ||
var DEFAULT_CACHE = true; | ||
@@ -178,2 +179,3 @@ | ||
var deps = keyConfig.deps ? keyConfig.deps : EMPTY_ARRAY; | ||
var depMap = keyConfig.depMap ? keyConfig.depMap : EMPTY_OBJ; | ||
var params = keyConfig.params ? keyConfig.params : EMPTY_ARRAY; | ||
@@ -184,3 +186,3 @@ // cache getters by default | ||
if (getter) getters[keyPath] = { getter: getter, deps: deps, params: params, cache: _cache }; | ||
if (getter) getters[keyPath] = { getter: getter, deps: deps, depMap: depMap, params: params, cache: _cache }; | ||
if (setter) setters[keyPath] = setter; | ||
@@ -208,10 +210,10 @@ if (initter) initters[keyPath] = initter; | ||
var flattenDeps = function flattenDeps(deps) { | ||
var flattenedDeps = []; | ||
var flattenDeps = function flattenDeps(deps, depMap, flattenedDeps) { | ||
if (!flattenedDeps) flattenedDeps = []; | ||
for (var _i = 0, _len = deps.length; _i < _len; _i++) { | ||
var depKey = deps[_i]; | ||
if (getters[depKey]) { | ||
var innerDeps = getters[depKey].deps; | ||
var inner = getters[depKey]; | ||
if (inner && !depMap[depKey]) { | ||
// recurse | ||
flattenedDeps = flattenedDeps.concat(flattenDeps(innerDeps, depKey)); | ||
flattenDeps(inner.deps, inner.depMap, flattenedDeps); | ||
} else { | ||
@@ -235,3 +237,3 @@ flattenedDeps.push(depKey); | ||
} else { | ||
computer.flattenedDeps = flattenDeps(computerDeps); | ||
computer.flattenedDeps = flattenDeps(computerDeps, computer.depMap); | ||
} | ||
@@ -398,2 +400,3 @@ } | ||
if (hasDeps) { | ||
var _depMap = computer.depMap; | ||
var paramCount = computedParams.length + deps.length; | ||
@@ -415,2 +418,6 @@ var startIndex = paramCount - paramCountCeil; | ||
var _val2 = this.get(depKey); | ||
var mapFunc = _depMap[depKey]; | ||
if (mapFunc) { | ||
_val2 = mapFunc.call.apply(mapFunc, [this, _val2].concat(inputParamVals)); | ||
} | ||
computedParams.push(_val2); | ||
@@ -417,0 +424,0 @@ |
{ | ||
"name": "@the-grid/immutable", | ||
"version": "1.1.8", | ||
"version": "1.1.9", | ||
"description": "Describe struct here", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
36317
787