@zero-scripts/core
Version:
Framework for creating presets, configurations and extensions
19 lines • 758 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolve = void 0;
function resolve(rootNode, resolved = [], unresolved = []) {
unresolved.push(rootNode);
rootNode.edges.forEach(edgeNode => {
if (resolved.findIndex(node => node.id === edgeNode.id) === -1) {
if (unresolved.findIndex(node => node.id === edgeNode.id) !== -1) {
throw new Error(`Circular reference detected: ${rootNode.id} => ${edgeNode.id}`);
}
resolve(edgeNode, resolved, unresolved);
}
});
resolved.push(rootNode);
unresolved.splice(unresolved.indexOf(rootNode));
return resolved;
}
exports.resolve = resolve;
//# sourceMappingURL=resolve.js.map