UNPKG

@glimmer/syntax

Version:
156 lines (124 loc) 9.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isLiteral = isLiteral; exports.InterpolateExpression = exports.DeprecatedCallExpression = exports.CallExpression = exports.PathExpression = exports.LiteralExpression = void 0; var _slice = require("../../source/slice"); var _node = require("./node"); function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } /** * Corresponds to a Handlebars literal. * * @see {LiteralValue} */ var LiteralExpression = /*#__PURE__*/function (_node$fields) { _inheritsLoose(LiteralExpression, _node$fields); function LiteralExpression() { return _node$fields.apply(this, arguments) || this; } var _proto = LiteralExpression.prototype; _proto.toSlice = function toSlice() { return new _slice.SourceSlice({ loc: this.loc, chars: this.value }); }; return LiteralExpression; }((0, _node.node)('Literal').fields()); /** * Returns true if an input {@see ExpressionNode} is a literal. */ exports.LiteralExpression = LiteralExpression; function isLiteral(node, kind) { if (node.type === 'Literal') { if (kind === undefined) { return true; } else if (kind === 'null') { return node.value === null; } else { return typeof node.value === kind; } } else { return false; } } /** * Corresponds to a path in expression position. * * ```hbs * this * this.x * @x * @x.y * x * x.y * ``` */ var PathExpression = /*#__PURE__*/function (_node$fields2) { _inheritsLoose(PathExpression, _node$fields2); function PathExpression() { return _node$fields2.apply(this, arguments) || this; } return PathExpression; }((0, _node.node)('Path').fields()); /** * Corresponds to a parenthesized call expression. * * ```hbs * (x) * (x.y) * (x y) * (x.y z) * ``` */ exports.PathExpression = PathExpression; var CallExpression = /*#__PURE__*/function (_node$fields3) { _inheritsLoose(CallExpression, _node$fields3); function CallExpression() { return _node$fields3.apply(this, arguments) || this; } return CallExpression; }((0, _node.node)('Call').fields()); /** * Corresponds to a possible deprecated helper call. Must be: * * 1. A free variable (not this.foo, not @foo, not local). * 2. Argument-less. * 3. In a component invocation's named argument position. * 4. Not parenthesized (not @bar={{(helper)}}). * 5. Not interpolated (not @bar="{{helper}}"). * * ```hbs * <Foo @bar={{helper}} /> * ``` */ exports.CallExpression = CallExpression; var DeprecatedCallExpression = /*#__PURE__*/function (_node$fields4) { _inheritsLoose(DeprecatedCallExpression, _node$fields4); function DeprecatedCallExpression() { return _node$fields4.apply(this, arguments) || this; } return DeprecatedCallExpression; }((0, _node.node)('DeprecatedCall').fields()); /** * Corresponds to an interpolation in attribute value position. * * ```hbs * <a href="{{url}}.html" * ``` */ exports.DeprecatedCallExpression = DeprecatedCallExpression; var InterpolateExpression = /*#__PURE__*/function (_node$fields5) { _inheritsLoose(InterpolateExpression, _node$fields5); function InterpolateExpression() { return _node$fields5.apply(this, arguments) || this; } return InterpolateExpression; }((0, _node.node)('Interpolate').fields()); exports.InterpolateExpression = InterpolateExpression; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL2V4cHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQTs7QUFFQTs7Ozs7Ozs7QUFrQkE7Ozs7O0FBS0EsSUFBTSxpQkFBTixHQUFBLGFBQUEsVUFBQSxZQUFBLEVBQUE7QUFBQSxFQUFBLGNBQUEsQ0FBQSxpQkFBQSxFQUFBLFlBQUEsQ0FBQTs7QUFBQSxXQUFBLGlCQUFBLEdBQUE7QUFBQSxXQUFBLFlBQUEsQ0FBQSxLQUFBLENBQUEsSUFBQSxFQUFBLFNBQUEsS0FBQSxJQUFBO0FBQUE7O0FBQUEsTUFBQSxNQUFBLEdBQUEsaUJBQUEsQ0FBQSxTQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLE9BQUEsR0FDRSxTQUFBLE9BQUEsR0FBTztBQUNMLFdBQU8sSUFBQSxrQkFBQSxDQUFnQjtBQUFFLE1BQUEsR0FBRyxFQUFFLEtBQVAsR0FBQTtBQUFpQixNQUFBLEtBQUssRUFBRSxLQUFLO0FBQTdCLEtBQWhCLENBQVA7QUFGSixHQUFBOztBQUFBLFNBQUEsaUJBQUE7QUFBQSxDQUFBLENBQXVDLGdCQUFBLFNBQUEsRUFBdkMsTUFBdUMsRUFBdkMsQ0FBQTtBQVFBOzs7Ozs7O0FBR00sU0FBQSxTQUFBLENBQUEsSUFBQSxFQUFBLElBQUEsRUFFSTtBQUVSLE1BQUksSUFBSSxDQUFKLElBQUEsS0FBSixTQUFBLEVBQTZCO0FBQzNCLFFBQUksSUFBSSxLQUFSLFNBQUEsRUFBd0I7QUFDdEIsYUFBQSxJQUFBO0FBREYsS0FBQSxNQUVPLElBQUksSUFBSSxLQUFSLE1BQUEsRUFBcUI7QUFDMUIsYUFBTyxJQUFJLENBQUosS0FBQSxLQUFQLElBQUE7QUFESyxLQUFBLE1BRUE7QUFDTCxhQUFPLE9BQU8sSUFBSSxDQUFYLEtBQUEsS0FBUCxJQUFBO0FBQ0Q7QUFQSCxHQUFBLE1BUU87QUFDTCxXQUFBLEtBQUE7QUFDRDtBQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0FBWUEsSUFBTSxjQUFOLEdBQUEsYUFBQSxVQUFBLGFBQUEsRUFBQTtBQUFBLEVBQUEsY0FBQSxDQUFBLGNBQUEsRUFBQSxhQUFBLENBQUE7O0FBQUEsV0FBQSxjQUFBLEdBQUE7QUFBQSxXQUFBLGFBQUEsQ0FBQSxLQUFBLENBQUEsSUFBQSxFQUFBLFNBQUEsS0FBQSxJQUFBO0FBQUE7O0FBQUEsU0FBQSxjQUFBO0FBQUEsQ0FBQSxDQUFvQyxnQkFBQSxNQUFBLEVBQXBDLE1BQW9DLEVBQXBDLENBQUE7QUFLQTs7Ozs7Ozs7Ozs7Ozs7QUFVQSxJQUFNLGNBQU4sR0FBQSxhQUFBLFVBQUEsYUFBQSxFQUFBO0FBQUEsRUFBQSxjQUFBLENBQUEsY0FBQSxFQUFBLGFBQUEsQ0FBQTs7QUFBQSxXQUFBLGNBQUEsR0FBQTtBQUFBLFdBQUEsYUFBQSxDQUFBLEtBQUEsQ0FBQSxJQUFBLEVBQUEsU0FBQSxLQUFBLElBQUE7QUFBQTs7QUFBQSxTQUFBLGNBQUE7QUFBQSxDQUFBLENBQW9DLGdCQUFBLE1BQUEsRUFBcEMsTUFBb0MsRUFBcEMsQ0FBQTtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLElBQU0sd0JBQU4sR0FBQSxhQUFBLFVBQUEsYUFBQSxFQUFBO0FBQUEsRUFBQSxjQUFBLENBQUEsd0JBQUEsRUFBQSxhQUFBLENBQUE7O0FBQUEsV0FBQSx3QkFBQSxHQUFBO0FBQUEsV0FBQSxhQUFBLENBQUEsS0FBQSxDQUFBLElBQUEsRUFBQSxTQUFBLEtBQUEsSUFBQTtBQUFBOztBQUFBLFNBQUEsd0JBQUE7QUFBQSxDQUFBLENBQThDLGdCQUFBLGdCQUFBLEVBQTlDLE1BQThDLEVBQTlDLENBQUE7QUFLQTs7Ozs7Ozs7Ozs7QUFPQSxJQUFNLHFCQUFOLEdBQUEsYUFBQSxVQUFBLGFBQUEsRUFBQTtBQUFBLEVBQUEsY0FBQSxDQUFBLHFCQUFBLEVBQUEsYUFBQSxDQUFBOztBQUFBLFdBQUEscUJBQUEsR0FBQTtBQUFBLFdBQUEsYUFBQSxDQUFBLEtBQUEsQ0FBQSxJQUFBLEVBQUEsU0FBQSxLQUFBLElBQUE7QUFBQTs7QUFBQSxTQUFBLHFCQUFBO0FBQUEsQ0FBQSxDQUEyQyxnQkFBQSxhQUFBLEVBQTNDLE1BQTJDLEVBQTNDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgU291cmNlU2xpY2UgfSBmcm9tICcuLi8uLi9zb3VyY2Uvc2xpY2UnO1xuaW1wb3J0IHR5cGUgeyBDYWxsRmllbGRzIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IG5vZGUgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHR5cGUgeyBGcmVlVmFyUmVmZXJlbmNlLCBWYXJpYWJsZVJlZmVyZW5jZSB9IGZyb20gJy4vcmVmcyc7XG5cbi8qKlxuICogQSBIYW5kbGViYXJzIGxpdGVyYWwuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vaGFuZGxlYmFyc2pzLmNvbS9ndWlkZS9leHByZXNzaW9ucy5odG1sI2xpdGVyYWwtc2VnbWVudHN9XG4gKi9cbmV4cG9ydCB0eXBlIExpdGVyYWxWYWx1ZSA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpdGVyYWxUeXBlcyB7XG4gIHN0cmluZzogc3RyaW5nO1xuICBib29sZWFuOiBib29sZWFuO1xuICBudW1iZXI6IG51bWJlcjtcbiAgbnVsbDogbnVsbDtcbiAgdW5kZWZpbmVkOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYSBIYW5kbGViYXJzIGxpdGVyYWwuXG4gKlxuICogQHNlZSB7TGl0ZXJhbFZhbHVlfVxuICovXG5leHBvcnQgY2xhc3MgTGl0ZXJhbEV4cHJlc3Npb24gZXh0ZW5kcyBub2RlKCdMaXRlcmFsJykuZmllbGRzPHsgdmFsdWU6IExpdGVyYWxWYWx1ZSB9PigpIHtcbiAgdG9TbGljZSh0aGlzOiBTdHJpbmdMaXRlcmFsKTogU291cmNlU2xpY2Uge1xuICAgIHJldHVybiBuZXcgU291cmNlU2xpY2UoeyBsb2M6IHRoaXMubG9jLCBjaGFyczogdGhpcy52YWx1ZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBTdHJpbmdMaXRlcmFsID0gTGl0ZXJhbEV4cHJlc3Npb24gJiB7IHZhbHVlOiBzdHJpbmcgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgYW4gaW5wdXQge0BzZWUgRXhwcmVzc2lvbk5vZGV9IGlzIGEgbGl0ZXJhbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTGl0ZXJhbDxLIGV4dGVuZHMga2V5b2YgTGl0ZXJhbFR5cGVzID0ga2V5b2YgTGl0ZXJhbFR5cGVzPihcbiAgbm9kZTogRXhwcmVzc2lvbk5vZGUsXG4gIGtpbmQ/OiBLXG4pOiBub2RlIGlzIFN0cmluZ0xpdGVyYWwge1xuICBpZiAobm9kZS50eXBlID09PSAnTGl0ZXJhbCcpIHtcbiAgICBpZiAoa2luZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGtpbmQgPT09ICdudWxsJykge1xuICAgICAgcmV0dXJuIG5vZGUudmFsdWUgPT09IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygbm9kZS52YWx1ZSA9PT0ga2luZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYSBwYXRoIGluIGV4cHJlc3Npb24gcG9zaXRpb24uXG4gKlxuICogYGBgaGJzXG4gKiB0aGlzXG4gKiB0aGlzLnhcbiAqIEB4XG4gKiBAeC55XG4gKiB4XG4gKiB4LnlcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgUGF0aEV4cHJlc3Npb24gZXh0ZW5kcyBub2RlKCdQYXRoJykuZmllbGRzPHtcbiAgcmVmOiBWYXJpYWJsZVJlZmVyZW5jZTtcbiAgdGFpbDogcmVhZG9ubHkgU291cmNlU2xpY2VbXTtcbn0+KCkge31cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhIHBhcmVudGhlc2l6ZWQgY2FsbCBleHByZXNzaW9uLlxuICpcbiAqIGBgYGhic1xuICogKHgpXG4gKiAoeC55KVxuICogKHggeSlcbiAqICh4LnkgeilcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBub2RlKCdDYWxsJykuZmllbGRzPENhbGxGaWVsZHM+KCkge31cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhIHBvc3NpYmxlIGRlcHJlY2F0ZWQgaGVscGVyIGNhbGwuIE11c3QgYmU6XG4gKlxuICogMS4gQSBmcmVlIHZhcmlhYmxlIChub3QgdGhpcy5mb28sIG5vdCBAZm9vLCBub3QgbG9jYWwpLlxuICogMi4gQXJndW1lbnQtbGVzcy5cbiAqIDMuIEluIGEgY29tcG9uZW50IGludm9jYXRpb24ncyBuYW1lZCBhcmd1bWVudCBwb3NpdGlvbi5cbiAqIDQuIE5vdCBwYXJlbnRoZXNpemVkIChub3QgQGJhcj17eyhoZWxwZXIpfX0pLlxuICogNS4gTm90IGludGVycG9sYXRlZCAobm90IEBiYXI9XCJ7e2hlbHBlcn19XCIpLlxuICpcbiAqIGBgYGhic1xuICogPEZvbyBAYmFyPXt7aGVscGVyfX0gLz5cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZENhbGxFeHByZXNzaW9uIGV4dGVuZHMgbm9kZSgnRGVwcmVjYXRlZENhbGwnKS5maWVsZHM8e1xuICBhcmc6IFNvdXJjZVNsaWNlO1xuICBjYWxsZWU6IEZyZWVWYXJSZWZlcmVuY2U7XG59PigpIHt9XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYW4gaW50ZXJwb2xhdGlvbiBpbiBhdHRyaWJ1dGUgdmFsdWUgcG9zaXRpb24uXG4gKlxuICogYGBgaGJzXG4gKiA8YSBocmVmPVwie3t1cmx9fS5odG1sXCJcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgSW50ZXJwb2xhdGVFeHByZXNzaW9uIGV4dGVuZHMgbm9kZSgnSW50ZXJwb2xhdGUnKS5maWVsZHM8e1xuICBwYXJ0czogUHJlc2VudEFycmF5PEV4cHJlc3Npb25Ob2RlPjtcbn0+KCkge31cblxuZXhwb3J0IHR5cGUgRXhwcmVzc2lvbk5vZGUgPVxuICB8IExpdGVyYWxFeHByZXNzaW9uXG4gIHwgUGF0aEV4cHJlc3Npb25cbiAgfCBDYWxsRXhwcmVzc2lvblxuICB8IERlcHJlY2F0ZWRDYWxsRXhwcmVzc2lvblxuICB8IEludGVycG9sYXRlRXhwcmVzc2lvbjtcbiJdLCJzb3VyY2VSb290IjoiIn0=