@glimmer/syntax
Version:
43 lines (37 loc) • 3.39 kB
JavaScript
export default class WalkerPath {
constructor(node, parent = null, parentKey = null) {
this.node = node;
this.parent = parent;
this.parentKey = parentKey;
}
get parentNode() {
return this.parent ? this.parent.node : null;
}
parents() {
return {
[Symbol.iterator]: () => {
return new PathParentsIterator(this);
}
};
}
}
class PathParentsIterator {
constructor(path) {
this.path = path;
}
next() {
if (this.path.parent) {
this.path = this.path.parent;
return {
done: false,
value: this.path
};
} else {
return {
done: true,
value: null
};
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdHJhdmVyc2FsL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZUFBYyxNQUFPLFVBQVAsQ0FBaUI7QUFLN0IsRUFBQSxXQUFBLENBQ0UsSUFERixFQUVFLE1BQUEsR0FBd0MsSUFGMUMsRUFHRSxTQUFBLEdBQTJCLElBSDdCLEVBR2lDO0FBRS9CLFNBQUssSUFBTCxHQUFZLElBQVo7QUFDQSxTQUFLLE1BQUwsR0FBYyxNQUFkO0FBQ0EsU0FBSyxTQUFMLEdBQWlCLFNBQWpCO0FBQ0Q7O0FBRUQsTUFBSSxVQUFKLEdBQWM7QUFDWixXQUFPLEtBQUssTUFBTCxHQUFjLEtBQUssTUFBTCxDQUFZLElBQTFCLEdBQWlDLElBQXhDO0FBQ0Q7O0FBRUQsRUFBQSxPQUFPLEdBQUE7QUFDTCxXQUFPO0FBQ0wsT0FBQyxNQUFNLENBQUMsUUFBUixHQUFtQixNQUFLO0FBQ3RCLGVBQU8sSUFBSSxtQkFBSixDQUF3QixJQUF4QixDQUFQO0FBQ0Q7QUFISSxLQUFQO0FBS0Q7O0FBekI0Qjs7QUE0Qi9CLE1BQU0sbUJBQU4sQ0FBeUI7QUFHdkIsRUFBQSxXQUFBLENBQVksSUFBWixFQUF3QztBQUN0QyxTQUFLLElBQUwsR0FBWSxJQUFaO0FBQ0Q7O0FBRUQsRUFBQSxJQUFJLEdBQUE7QUFDRixRQUFJLEtBQUssSUFBTCxDQUFVLE1BQWQsRUFBc0I7QUFDcEIsV0FBSyxJQUFMLEdBQVksS0FBSyxJQUFMLENBQVUsTUFBdEI7QUFDQSxhQUFPO0FBQUUsUUFBQSxJQUFJLEVBQUUsS0FBUjtBQUFlLFFBQUEsS0FBSyxFQUFFLEtBQUs7QUFBM0IsT0FBUDtBQUNELEtBSEQsTUFHTztBQUNMLGFBQU87QUFBRSxRQUFBLElBQUksRUFBRSxJQUFSO0FBQWMsUUFBQSxLQUFLLEVBQUU7QUFBckIsT0FBUDtBQUNEO0FBQ0Y7O0FBZHNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQVNUdjEgZnJvbSAnLi4vdjEvYXBpJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2Fsa2VyUGF0aDxOIGV4dGVuZHMgQVNUdjEuTm9kZT4ge1xuICBub2RlOiBOO1xuICBwYXJlbnQ6IFdhbGtlclBhdGg8QVNUdjEuTm9kZT4gfCBudWxsO1xuICBwYXJlbnRLZXk6IHN0cmluZyB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbm9kZTogTixcbiAgICBwYXJlbnQ6IFdhbGtlclBhdGg8QVNUdjEuTm9kZT4gfCBudWxsID0gbnVsbCxcbiAgICBwYXJlbnRLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gICkge1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgdGhpcy5wYXJlbnRLZXkgPSBwYXJlbnRLZXk7XG4gIH1cblxuICBnZXQgcGFyZW50Tm9kZSgpOiBBU1R2MS5Ob2RlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnQubm9kZSA6IG51bGw7XG4gIH1cblxuICBwYXJlbnRzKCk6IEl0ZXJhYmxlPFdhbGtlclBhdGg8QVNUdjEuTm9kZT4gfCBudWxsPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUGF0aFBhcmVudHNJdGVyYXRvcih0aGlzKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5jbGFzcyBQYXRoUGFyZW50c0l0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3I8V2Fsa2VyUGF0aDxBU1R2MS5Ob2RlPiB8IG51bGw+IHtcbiAgcGF0aDogV2Fsa2VyUGF0aDxBU1R2MS5Ob2RlPjtcblxuICBjb25zdHJ1Y3RvcihwYXRoOiBXYWxrZXJQYXRoPEFTVHYxLk5vZGU+KSB7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgaWYgKHRoaXMucGF0aC5wYXJlbnQpIHtcbiAgICAgIHRoaXMucGF0aCA9IHRoaXMucGF0aC5wYXJlbnQ7XG4gICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IHRoaXMucGF0aCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xuICAgIH1cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==