patchwork-mapconverter
Version:
Executable wrapper for https://github.com/ChiefOfGxBxL/WC3MapTranslator
31 lines • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function* TreeIterator(root, getChildNodes) {
const traversalStack = [root];
const parentMaps = new Map();
while (traversalStack.length > 0) {
const node = traversalStack.pop();
if (node == null)
continue;
const children = getChildNodes(node);
let childParentPath = parentMaps.get(node);
if (childParentPath == null) {
childParentPath = [];
}
else { // copy
childParentPath = childParentPath.map(it => it);
}
childParentPath.push(node);
if (children != null) {
for (const child of children) {
parentMaps.set(child, childParentPath);
traversalStack.push(child);
}
}
childParentPath = childParentPath.map(it => it);
childParentPath.pop();
yield [childParentPath, node];
}
}
exports.default = TreeIterator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJlZUl0ZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvVHJlZUl0ZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsUUFBUyxDQUFDLENBQUMsWUFBWSxDQUFRLElBQVUsRUFBRSxhQUFtRDtJQUM1RixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzdCLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFnQixDQUFBO0lBRTFDLE9BQU8sY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ2pDLElBQUksSUFBSSxJQUFJLElBQUk7WUFBRSxTQUFRO1FBRTFCLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwQyxJQUFJLGVBQWUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFDLElBQUksZUFBZSxJQUFJLElBQUksRUFBRTtZQUMzQixlQUFlLEdBQUcsRUFBRSxDQUFBO1NBQ3JCO2FBQU0sRUFBRSxPQUFPO1lBQ2QsZUFBZSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtTQUNoRDtRQUVELGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDMUIsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ3BCLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFO2dCQUM1QixVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQTtnQkFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTthQUMzQjtTQUNGO1FBRUQsZUFBZSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUE7UUFFckIsTUFBTSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQTtLQUM5QjtBQUNILENBQUM7QUFFRCxrQkFBZSxZQUFZLENBQUEifQ==