react-obsidian
Version:
Dependency injection framework for React and React Native applications
32 lines • 931 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.VisitedNodes = void 0;
class VisitedNodes {
constructor() {
this.visitedNodes = new Set();
this.visitPath = [];
}
visit(graphName, dependencyName) {
this.visitPath.push(dependencyName);
if (this.canVisit(graphName, dependencyName)) {
this.visitedNodes.add(`${graphName}.${dependencyName}`);
return true;
}
return false;
}
canVisit(graphName, dependencyName) {
return !this.visitedNodes.has(`${graphName}.${dependencyName}`);
}
isCircularPath() {
return this.visitedNodes.size < this.visitPath.length;
}
getNodes() {
return this.visitPath;
}
clear() {
this.visitedNodes.clear();
this.visitPath.length = 0;
}
}
exports.VisitedNodes = VisitedNodes;
//# sourceMappingURL=VisitedNodes.js.map
;