123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var _scope = _interopRequireDefault(require("./scope"));
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- class WalkerPath {
- constructor(node, parent = null, parentKey = null) {
- this.node = node;
- this.parent = parent;
- this.parentKey = parentKey;
- this.scope = parent ? parent.scope.child(node) : new _scope.default(node); // Consume in scope values
- if (node.type === 'PathExpression') {
- this.scope.useLocal(node);
- }
- if (node.type === 'ElementNode') {
- this.scope.useLocal(node);
- node.children.forEach(node => this.scope.useLocal(node));
- }
- }
- get parentNode() {
- return this.parent ? this.parent.node : null;
- }
- parents() {
- return {
- [Symbol.iterator]: () => {
- return new PathParentsIterator(this);
- }
- };
- }
- }
- exports.default = WalkerPath;
- 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdHJhdmVyc2FsL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7O0FBRWMsTUFBQSxVQUFBLENBQWlCO0FBTTdCLEVBQUEsV0FBQSxDQUFBLElBQUEsRUFFRSxNQUFBLEdBRkYsSUFBQSxFQUdFLFNBQUEsR0FIRixJQUFBLEVBR2lDO0FBRS9CLFNBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxTQUFBLE1BQUEsR0FBQSxNQUFBO0FBQ0EsU0FBQSxTQUFBLEdBQUEsU0FBQTtBQUNBLFNBQUEsS0FBQSxHQUFhLE1BQU0sR0FBRyxNQUFNLENBQU4sS0FBQSxDQUFBLEtBQUEsQ0FBSCxJQUFHLENBQUgsR0FBOEIsSUFBQSxjQUFBLENBTGxCLElBS2tCLENBQWpELENBTCtCLENBTy9COztBQUNBLFFBQUksSUFBSSxDQUFKLElBQUEsS0FBSixnQkFBQSxFQUFvQztBQUNsQyxXQUFBLEtBQUEsQ0FBQSxRQUFBLENBQUEsSUFBQTtBQUNEOztBQUVELFFBQUksSUFBSSxDQUFKLElBQUEsS0FBSixhQUFBLEVBQWlDO0FBQy9CLFdBQUEsS0FBQSxDQUFBLFFBQUEsQ0FBQSxJQUFBO0FBRUMsTUFBQSxJQUEwQixDQUExQixRQUFBLENBQUEsT0FBQSxDQUE2QyxJQUFELElBQzNDLEtBQUEsS0FBQSxDQUFBLFFBQUEsQ0FERCxJQUNDLENBREQ7QUFHRjtBQUNGOztBQUVELE1BQUEsVUFBQSxHQUFjO0FBQ1osV0FBTyxLQUFBLE1BQUEsR0FBYyxLQUFBLE1BQUEsQ0FBZCxJQUFBLEdBQVAsSUFBQTtBQUNEOztBQUVELEVBQUEsT0FBTyxHQUFBO0FBQ0wsV0FBTztBQUNMLE9BQUMsTUFBTSxDQUFQLFFBQUEsR0FBbUIsTUFBSztBQUN0QixlQUFPLElBQUEsbUJBQUEsQ0FBUCxJQUFPLENBQVA7QUFDRDtBQUhJLEtBQVA7QUFLRDs7QUF4QzRCOzs7O0FBMkMvQixNQUFBLG1CQUFBLENBQXlCO0FBR3ZCLEVBQUEsV0FBQSxDQUFBLElBQUEsRUFBd0M7QUFDdEMsU0FBQSxJQUFBLEdBQUEsSUFBQTtBQUNEOztBQUVELEVBQUEsSUFBSSxHQUFBO0FBQ0YsUUFBSSxLQUFBLElBQUEsQ0FBSixNQUFBLEVBQXNCO0FBQ3BCLFdBQUEsSUFBQSxHQUFZLEtBQUEsSUFBQSxDQUFaLE1BQUE7QUFDQSxhQUFPO0FBQUUsUUFBQSxJQUFJLEVBQU4sS0FBQTtBQUFlLFFBQUEsS0FBSyxFQUFFLEtBQUs7QUFBM0IsT0FBUDtBQUZGLEtBQUEsTUFHTztBQUNMLGFBQU87QUFBRSxRQUFBLElBQUksRUFBTixJQUFBO0FBQWMsUUFBQSxLQUFLLEVBQUU7QUFBckIsT0FBUDtBQUNEO0FBQ0Y7O0FBZHNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQVNUdjEgZnJvbSAnLi4vdjEvYXBpJztcbmltcG9ydCBSb290VHJhbnNmb3JtU2NvcGUsIHsgVHJhbnNmb3JtU2NvcGUgfSBmcm9tICcuL3Njb3BlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2Fsa2VyUGF0aDxOIGV4dGVuZHMgQVNUdjEuTm9kZT4ge1xuICBub2RlOiBOO1xuICBwYXJlbnQ6IFdhbGtlclBhdGg8QVNUdjEuTm9kZT4gfCBudWxsO1xuICBwYXJlbnRLZXk6IHN0cmluZyB8IG51bGw7XG4gIHNjb3BlOiBUcmFuc2Zvcm1TY29wZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBub2RlOiBOLFxuICAgIHBhcmVudDogV2Fsa2VyUGF0aDxBU1R2MS5Ob2RlPiB8IG51bGwgPSBudWxsLFxuICAgIHBhcmVudEtleTogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgKSB7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICB0aGlzLnBhcmVudEtleSA9IHBhcmVudEtleTtcbiAgICB0aGlzLnNjb3BlID0gcGFyZW50ID8gcGFyZW50LnNjb3BlLmNoaWxkKG5vZGUpIDogbmV3IFJvb3RUcmFuc2Zvcm1TY29wZShub2RlKTtcblxuICAgIC8vIENvbnN1bWUgaW4gc2NvcGUgdmFsdWVzXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ1BhdGhFeHByZXNzaW9uJykge1xuICAgICAgdGhpcy5zY29wZS51c2VMb2NhbChub2RlKTtcbiAgICB9XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnRWxlbWVudE5vZGUnKSB7XG4gICAgICB0aGlzLnNjb3BlLnVzZUxvY2FsKG5vZGUpO1xuXG4gICAgICAobm9kZSBhcyBBU1R2MS5FbGVtZW50Tm9kZSkuY2hpbGRyZW4uZm9yRWFjaCgobm9kZTogQVNUdjEuU3RhdGVtZW50KSA9PlxuICAgICAgICB0aGlzLnNjb3BlLnVzZUxvY2FsKG5vZGUpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBwYXJlbnROb2RlKCk6IEFTVHYxLk5vZGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5ub2RlIDogbnVsbDtcbiAgfVxuXG4gIHBhcmVudHMoKTogSXRlcmFibGU8V2Fsa2VyUGF0aDxBU1R2MS5Ob2RlPiB8IG51bGw+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW1N5bWJvbC5pdGVyYXRvcl06ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQYXRoUGFyZW50c0l0ZXJhdG9yKHRoaXMpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbmNsYXNzIFBhdGhQYXJlbnRzSXRlcmF0b3IgaW1wbGVtZW50cyBJdGVyYXRvcjxXYWxrZXJQYXRoPEFTVHYxLk5vZGU+IHwgbnVsbD4ge1xuICBwYXRoOiBXYWxrZXJQYXRoPEFTVHYxLk5vZGU+O1xuXG4gIGNvbnN0cnVjdG9yKHBhdGg6IFdhbGtlclBhdGg8QVNUdjEuTm9kZT4pIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICBpZiAodGhpcy5wYXRoLnBhcmVudCkge1xuICAgICAgdGhpcy5wYXRoID0gdGhpcy5wYXRoLnBhcmVudDtcbiAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogdGhpcy5wYXRoIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XG4gICAgfVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
|