@glimmer/syntax
Version:
156 lines (124 loc) • 9.89 kB
JavaScript
;
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=