diff --git a/app/imports/api/engine/computation/buildComputation/linkCalculationDependencies.js b/app/imports/api/engine/computation/buildComputation/linkCalculationDependencies.js index 67e4452e..68a19951 100644 --- a/app/imports/api/engine/computation/buildComputation/linkCalculationDependencies.js +++ b/app/imports/api/engine/computation/buildComputation/linkCalculationDependencies.js @@ -1,7 +1,7 @@ import findAncestorByType from '/imports/api/engine/computation/utility/findAncestorByType.js'; import { traverse } from '/imports/parser/resolve.js'; -export default function linkCalculationDependencies(dependencyGraph, prop, {propsById}){ +export default function linkCalculationDependencies(dependencyGraph, prop, { propsById }) { prop._computationDetails.calculations.forEach(calcObj => { // Store resolved ancestors const memo = { @@ -16,12 +16,13 @@ export default function linkCalculationDependencies(dependencyGraph, prop, {prop // Skip nodes that aren't symbols or accessors if (node.parseType !== 'symbol' && node.parseType !== 'accessor') return; // Link ancestor references as direct property dependencies - if (node.name[0] === '#'){ + if (node.name[0] === '#') { let ancestorProp = getAncestorProp( node.name.slice(1), memo, prop, propsById ); if (!ancestorProp) return; // Link the ancestor prop as a direct dependency + // TODO: we might be referencing a calculation sub-field, depend on that instead dependencyGraph.addLink( calcNodeId, ancestorProp._id, 'ancestorReference' ); @@ -34,16 +35,16 @@ export default function linkCalculationDependencies(dependencyGraph, prop, {prop }); // Store the resolved ancestors in this calculation's local scope if (memo.ancestors) { - calcObj._localScope = { ...calcObj._localScope, ...memo.ancestors}; + calcObj._localScope = { ...calcObj._localScope, ...memo.ancestors }; } }); } -function getAncestorProp(type, memo, prop, propsById){ - if (memo.ancestors && memo.ancestors['#' + type]){ +function getAncestorProp(type, memo, prop, propsById) { + if (memo.ancestors && memo.ancestors['#' + type]) { return memo.ancestors['#' + type]; } else { - var ancestorProp = findAncestorByType( prop, type, propsById ); + var ancestorProp = findAncestorByType(prop, type, propsById); if (!memo.ancestors) memo.ancestors = {}; memo.ancestors['#' + type] = ancestorProp; return ancestorProp;