123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import b from './public-builders';
- export class PathExpressionImplV1 {
- constructor(original, head, tail, loc) {
- this.original = original;
- this.loc = loc;
- this.type = 'PathExpression';
- this.this = false;
- this.data = false;
- let parts = tail.slice();
- if (head.type === 'ThisHead') {
- this.this = true;
- } else if (head.type === 'AtHead') {
- this.data = true;
- parts.unshift(head.name.slice(1));
- } else {
- parts.unshift(head.name);
- }
- this.parts = parts;
- }
- get head() {
- let firstPart;
- if (this.this) {
- firstPart = 'this';
- } else if (this.data) {
- firstPart = `@${this.parts[0]}`;
- } else {
- firstPart = this.parts[0];
- }
- let firstPartLoc = this.loc.collapse('start').sliceStartChars({
- chars: firstPart.length
- }).loc;
- return b.head(firstPart, firstPartLoc);
- }
- get tail() {
- return this.this ? this.parts : this.parts.slice(1);
- }
- }
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvbGVnYWN5LWludGVyb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxDQUFQLE1BQWMsbUJBQWQ7QUFFQSxPQUFNLE1BQU8sb0JBQVAsQ0FBMkI7QUFNL0IsRUFBQSxXQUFBLENBQW1CLFFBQW5CLEVBQXFDLElBQXJDLEVBQXFELElBQXJELEVBQTRFLEdBQTVFLEVBQTJGO0FBQXhFLFNBQUEsUUFBQSxHQUFBLFFBQUE7QUFBeUQsU0FBQSxHQUFBLEdBQUEsR0FBQTtBQUw1RSxTQUFBLElBQUEsR0FBeUIsZ0JBQXpCO0FBRU8sU0FBQSxJQUFBLEdBQU8sS0FBUDtBQUNBLFNBQUEsSUFBQSxHQUFPLEtBQVA7QUFHTCxRQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBTCxFQUFaOztBQUVBLFFBQUksSUFBSSxDQUFDLElBQUwsS0FBYyxVQUFsQixFQUE4QjtBQUM1QixXQUFLLElBQUwsR0FBWSxJQUFaO0FBQ0QsS0FGRCxNQUVPLElBQUksSUFBSSxDQUFDLElBQUwsS0FBYyxRQUFsQixFQUE0QjtBQUNqQyxXQUFLLElBQUwsR0FBWSxJQUFaO0FBQ0EsTUFBQSxLQUFLLENBQUMsT0FBTixDQUFjLElBQUksQ0FBQyxJQUFMLENBQVUsS0FBVixDQUFnQixDQUFoQixDQUFkO0FBQ0QsS0FITSxNQUdBO0FBQ0wsTUFBQSxLQUFLLENBQUMsT0FBTixDQUFjLElBQUksQ0FBQyxJQUFuQjtBQUNEOztBQUVELFNBQUssS0FBTCxHQUFhLEtBQWI7QUFDRDs7QUFFRCxNQUFJLElBQUosR0FBUTtBQUNOLFFBQUksU0FBSjs7QUFFQSxRQUFJLEtBQUssSUFBVCxFQUFlO0FBQ2IsTUFBQSxTQUFTLEdBQUcsTUFBWjtBQUNELEtBRkQsTUFFTyxJQUFJLEtBQUssSUFBVCxFQUFlO0FBQ3BCLE1BQUEsU0FBUyxHQUFHLElBQUksS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUFhLEVBQTdCO0FBQ0QsS0FGTSxNQUVBO0FBQ0wsTUFBQSxTQUFTLEdBQUcsS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUFaO0FBQ0Q7O0FBRUQsUUFBSSxZQUFZLEdBQUcsS0FBSyxHQUFMLENBQVMsUUFBVCxDQUFrQixPQUFsQixFQUEyQixlQUEzQixDQUEyQztBQUM1RCxNQUFBLEtBQUssRUFBRSxTQUFTLENBQUM7QUFEMkMsS0FBM0MsRUFFaEIsR0FGSDtBQUlBLFdBQU8sQ0FBQyxDQUFDLElBQUYsQ0FBTyxTQUFQLEVBQWtCLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxNQUFJLElBQUosR0FBUTtBQUNOLFdBQU8sS0FBSyxJQUFMLEdBQVksS0FBSyxLQUFqQixHQUF5QixLQUFLLEtBQUwsQ0FBVyxLQUFYLENBQWlCLENBQWpCLENBQWhDO0FBQ0Q7O0FBekM4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgeyBQYXRoRXhwcmVzc2lvbiwgUGF0aEhlYWQgfSBmcm9tICcuL25vZGVzLXYxJztcbmltcG9ydCBiIGZyb20gJy4vcHVibGljLWJ1aWxkZXJzJztcblxuZXhwb3J0IGNsYXNzIFBhdGhFeHByZXNzaW9uSW1wbFYxIGltcGxlbWVudHMgUGF0aEV4cHJlc3Npb24ge1xuICB0eXBlOiAnUGF0aEV4cHJlc3Npb24nID0gJ1BhdGhFeHByZXNzaW9uJztcbiAgcHVibGljIHBhcnRzOiBzdHJpbmdbXTtcbiAgcHVibGljIHRoaXMgPSBmYWxzZTtcbiAgcHVibGljIGRhdGEgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3JpZ2luYWw6IHN0cmluZywgaGVhZDogUGF0aEhlYWQsIHRhaWw6IHN0cmluZ1tdLCBwdWJsaWMgbG9jOiBTb3VyY2VTcGFuKSB7XG4gICAgbGV0IHBhcnRzID0gdGFpbC5zbGljZSgpO1xuXG4gICAgaWYgKGhlYWQudHlwZSA9PT0gJ1RoaXNIZWFkJykge1xuICAgICAgdGhpcy50aGlzID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGhlYWQudHlwZSA9PT0gJ0F0SGVhZCcpIHtcbiAgICAgIHRoaXMuZGF0YSA9IHRydWU7XG4gICAgICBwYXJ0cy51bnNoaWZ0KGhlYWQubmFtZS5zbGljZSgxKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnRzLnVuc2hpZnQoaGVhZC5uYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnBhcnRzID0gcGFydHM7XG4gIH1cblxuICBnZXQgaGVhZCgpOiBQYXRoSGVhZCB7XG4gICAgbGV0IGZpcnN0UGFydDogc3RyaW5nO1xuXG4gICAgaWYgKHRoaXMudGhpcykge1xuICAgICAgZmlyc3RQYXJ0ID0gJ3RoaXMnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhKSB7XG4gICAgICBmaXJzdFBhcnQgPSBgQCR7dGhpcy5wYXJ0c1swXX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaXJzdFBhcnQgPSB0aGlzLnBhcnRzWzBdO1xuICAgIH1cblxuICAgIGxldCBmaXJzdFBhcnRMb2MgPSB0aGlzLmxvYy5jb2xsYXBzZSgnc3RhcnQnKS5zbGljZVN0YXJ0Q2hhcnMoe1xuICAgICAgY2hhcnM6IGZpcnN0UGFydC5sZW5ndGgsXG4gICAgfSkubG9jO1xuXG4gICAgcmV0dXJuIGIuaGVhZChmaXJzdFBhcnQsIGZpcnN0UGFydExvYyk7XG4gIH1cblxuICBnZXQgdGFpbCgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudGhpcyA/IHRoaXMucGFydHMgOiB0aGlzLnBhcnRzLnNsaWNlKDEpO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
|