make groups of dependencyCount to do async by group
This commit is contained in:
parent
0dee66bb4e
commit
38f32804f9
|
@ -291,6 +291,40 @@ class ContractsManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
callback();
|
callback();
|
||||||
|
},
|
||||||
|
function setDependencyCount(callback) {
|
||||||
|
let className;
|
||||||
|
|
||||||
|
function getDependencyCount(contractName, cycleDetector) {
|
||||||
|
if (!self.contractDependencies[contractName] || !self.contractDependencies[contractName].length) {
|
||||||
|
self.contracts[contractName].dependencyCount = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (self.contracts[contractName].dependencyCount) {
|
||||||
|
// Already have that count
|
||||||
|
return self.contracts[contractName].dependencyCount;
|
||||||
|
}
|
||||||
|
let total = self.contractDependencies[contractName].length;
|
||||||
|
self.contractDependencies[contractName].some(dependencyName => {
|
||||||
|
if (cycleDetector.indexOf(dependencyName) > -1) {
|
||||||
|
// We are in a cycle because of the dependency, set both to Infinity
|
||||||
|
self.contracts[dependencyName].dependencyCount = Infinity;
|
||||||
|
total = Infinity;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
cycleDetector.push(dependencyName);
|
||||||
|
total += getDependencyCount(dependencyName, cycleDetector);
|
||||||
|
});
|
||||||
|
self.contracts[contractName].dependencyCount = total;
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
|
let cycleDetector;
|
||||||
|
for (className in self.contracts) {
|
||||||
|
cycleDetector = [];
|
||||||
|
getDependencyCount(className, cycleDetector);
|
||||||
|
}
|
||||||
|
callback();
|
||||||
}
|
}
|
||||||
], function (err) {
|
], function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
let async = require('async');
|
let async = require('async');
|
||||||
|
const _ = require('underscore');
|
||||||
|
|
||||||
const utils = require('../utils/utils.js');
|
const utils = require('../utils/utils.js');
|
||||||
//require("../utils/debug_util.js")(__filename, async);
|
//require("../utils/debug_util.js")(__filename, async);
|
||||||
|
|
Loading…
Reference in New Issue