Improved dependencies-only recalculations and fixed many calculation bugs
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { forOwn, has } from 'lodash';
|
||||
import { forOwn, has, union } from 'lodash';
|
||||
|
||||
export default function computeLevels(memo){
|
||||
computeClassLevels(memo);
|
||||
@@ -8,7 +8,10 @@ export default function computeLevels(memo){
|
||||
function computeClassLevels(memo){
|
||||
forOwn(memo.classLevelsById, classLevel => {
|
||||
// class levels are mutually dependent
|
||||
classLevel.dependencies.push(Object.keys(memo.classLevelsById));
|
||||
classLevel.dependencies = union(
|
||||
classLevel.dependencies,
|
||||
Object.keys(memo.classLevelsById)
|
||||
);
|
||||
let name = classLevel.variableName;
|
||||
let stat = memo.statsByVariableName[name];
|
||||
if (!stat){
|
||||
@@ -43,8 +46,18 @@ function computeTotalLevel(memo){
|
||||
for (let name in memo.classes){
|
||||
let cls = memo.classes[name];
|
||||
level += cls.level || 0;
|
||||
if (cls._id) currentLevel.dependencies.push(cls._id);
|
||||
if (cls.dependencies) currentLevel.dependencies.push(...cls.dependencies);
|
||||
if (cls._id){
|
||||
currentLevel.dependencies = union(
|
||||
currentLevel.dependencies,
|
||||
[cls._id]
|
||||
)
|
||||
}
|
||||
if (cls.dependencies){
|
||||
currentLevel.dependencies = union(
|
||||
currentLevel.dependencies,
|
||||
cls.dependencies,
|
||||
)
|
||||
}
|
||||
}
|
||||
currentLevel.value = level;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user