@glimmer/compiler
Version:
65 lines (51 loc) • 6.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ClassifiedComponent = void 0;
var mir = _interopRequireWildcard(require("../../../2-encoding/mir"));
var _expressions = require("../expressions");
var _statements = require("../statements");
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var ClassifiedComponent = /*#__PURE__*/function () {
function ClassifiedComponent(tag, element) {
this.tag = tag;
this.element = element;
this.dynamicFeatures = true;
}
var _proto = ClassifiedComponent.prototype;
_proto.arg = function arg(attr, _ref) {
var state = _ref.state;
var name = attr.name;
return _expressions.VISIT_EXPRS.visit((0, _expressions.convertPathToCallIfKeyword)(attr.value), state).mapOk(function (value) {
return new mir.NamedArgument({
loc: attr.loc,
key: name,
value: value
});
});
};
_proto.toStatement = function toStatement(component, _ref2) {
var _this = this;
var args = _ref2.args,
params = _ref2.params;
var element = component.element,
state = component.state;
return this.blocks(state).mapOk(function (blocks) {
return new mir.Component({
loc: element.loc,
tag: _this.tag,
params: params,
args: args,
blocks: blocks
});
});
};
_proto.blocks = function blocks(state) {
return _statements.VISIT_STMTS.NamedBlocks(this.element.blocks, state);
};
return ClassifiedComponent;
}();
exports.ClassifiedComponent = ClassifiedComponent;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi9wYXNzZXMvMS1ub3JtYWxpemF0aW9uL3Zpc2l0b3JzL2VsZW1lbnQvY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQTs7QUFFQTs7QUFDQTs7Ozs7O0FBR0EsSUFBTSxtQkFBTixHQUFBLGFBQUEsWUFBQTtBQUdFLFdBQUEsbUJBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQSxFQUFtRjtBQUEvRCxTQUFBLEdBQUEsR0FBQSxHQUFBO0FBQWlDLFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFGNUMsU0FBQSxlQUFBLEdBQUEsSUFBQTtBQUU4RTs7QUFIekYsTUFBQSxNQUFBLEdBQUEsbUJBQUEsQ0FBQSxTQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLEdBQUEsR0FLRSxTQUFBLEdBQUEsQ0FBQSxJQUFBLEVBQUEsSUFBQSxFQUEwRDtBQUFBLFFBQTFCLEtBQTBCLEdBQUEsSUFBQSxDQUExQixLQUEwQjtBQUN4RCxRQUFJLElBQUksR0FBRyxJQUFJLENBQWYsSUFBQTtBQUVBLFdBQU8seUJBQUEsS0FBQSxDQUFrQiw2Q0FBMkIsSUFBSSxDQUFqRCxLQUFrQixDQUFsQixFQUFBLEtBQUEsRUFBQSxLQUFBLENBQ0osVUFBRCxLQUFDLEVBQUQ7QUFBQSxhQUNFLElBQUksR0FBRyxDQUFQLGFBQUEsQ0FBc0I7QUFDcEIsUUFBQSxHQUFHLEVBQUUsSUFBSSxDQURXLEdBQUE7QUFFcEIsUUFBQSxHQUFHLEVBRmlCLElBQUE7QUFHcEIsUUFBQSxLQUFBLEVBQUE7QUFIb0IsT0FBdEIsQ0FERjtBQURGLEtBQU8sQ0FBUDtBQVJKLEdBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsV0FBQSxHQWtCRSxTQUFBLFdBQUEsQ0FBQSxTQUFBLEVBQUEsS0FBQSxFQUF3RTtBQUFBLFFBQUEsS0FBQSxHQUFBLElBQUE7O0FBQUEsUUFBOUIsSUFBOEIsR0FBQSxLQUFBLENBQTlCLElBQThCO0FBQUEsUUFBdEIsTUFBc0IsR0FBQSxLQUFBLENBQXRCLE1BQXNCO0FBQUEsUUFDbEUsT0FEa0UsR0FDdEUsU0FEc0UsQ0FBQSxPQUFBO0FBQUEsUUFDdkQsS0FEdUQsR0FDdEUsU0FEc0UsQ0FBQSxLQUFBO0FBR3RFLFdBQU8sS0FBQSxNQUFBLENBQUEsS0FBQSxFQUFBLEtBQUEsQ0FDSixVQUFELE1BQUMsRUFBRDtBQUFBLGFBQ0UsSUFBSSxHQUFHLENBQVAsU0FBQSxDQUFrQjtBQUNoQixRQUFBLEdBQUcsRUFBRSxPQUFPLENBREksR0FBQTtBQUVoQixRQUFBLEdBQUcsRUFBRSxLQUFBLENBRlcsR0FBQTtBQUdoQixRQUFBLE1BSGdCLEVBQUEsTUFBQTtBQUloQixRQUFBLElBSmdCLEVBQUEsSUFBQTtBQUtoQixRQUFBLE1BQUEsRUFBQTtBQUxnQixPQUFsQixDQURGO0FBREYsS0FBTyxDQUFQO0FBckJKLEdBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsTUFBQSxHQWlDVSxTQUFBLE1BQUEsQ0FBQSxLQUFBLEVBQWdDO0FBQ3RDLFdBQU8sd0JBQUEsV0FBQSxDQUF3QixLQUFBLE9BQUEsQ0FBeEIsTUFBQSxFQUFQLEtBQU8sQ0FBUDtBQWxDSixHQUFBOztBQUFBLFNBQUEsbUJBQUE7QUFBQSxDQUFBLEVBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBU1R2MiB9IGZyb20gJ0BnbGltbWVyL3N5bnRheCc7XG5cbmltcG9ydCB7IFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9yZXN1bHQnO1xuaW1wb3J0ICogYXMgbWlyIGZyb20gJy4uLy4uLy4uLzItZW5jb2RpbmcvbWlyJztcbmltcG9ydCB7IE5vcm1hbGl6YXRpb25TdGF0ZSB9IGZyb20gJy4uLy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgY29udmVydFBhdGhUb0NhbGxJZktleXdvcmQsIFZJU0lUX0VYUFJTIH0gZnJvbSAnLi4vZXhwcmVzc2lvbnMnO1xuaW1wb3J0IHsgVklTSVRfU1RNVFMgfSBmcm9tICcuLi9zdGF0ZW1lbnRzJztcbmltcG9ydCB7IENsYXNzaWZpZWQsIENsYXNzaWZpZWRFbGVtZW50LCBQcmVwYXJlZEFyZ3MgfSBmcm9tICcuL2NsYXNzaWZpZWQnO1xuXG5leHBvcnQgY2xhc3MgQ2xhc3NpZmllZENvbXBvbmVudCBpbXBsZW1lbnRzIENsYXNzaWZpZWQge1xuICByZWFkb25seSBkeW5hbWljRmVhdHVyZXMgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFnOiBtaXIuRXhwcmVzc2lvbk5vZGUsIHByaXZhdGUgZWxlbWVudDogQVNUdjIuSW52b2tlQ29tcG9uZW50KSB7fVxuXG4gIGFyZyhhdHRyOiBBU1R2Mi5Db21wb25lbnRBcmcsIHsgc3RhdGUgfTogQ2xhc3NpZmllZEVsZW1lbnQpOiBSZXN1bHQ8bWlyLk5hbWVkQXJndW1lbnQ+IHtcbiAgICBsZXQgbmFtZSA9IGF0dHIubmFtZTtcblxuICAgIHJldHVybiBWSVNJVF9FWFBSUy52aXNpdChjb252ZXJ0UGF0aFRvQ2FsbElmS2V5d29yZChhdHRyLnZhbHVlKSwgc3RhdGUpLm1hcE9rKFxuICAgICAgKHZhbHVlKSA9PlxuICAgICAgICBuZXcgbWlyLk5hbWVkQXJndW1lbnQoe1xuICAgICAgICAgIGxvYzogYXR0ci5sb2MsXG4gICAgICAgICAga2V5OiBuYW1lLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICB0b1N0YXRlbWVudChjb21wb25lbnQ6IENsYXNzaWZpZWRFbGVtZW50LCB7IGFyZ3MsIHBhcmFtcyB9OiBQcmVwYXJlZEFyZ3MpOiBSZXN1bHQ8bWlyLlN0YXRlbWVudD4ge1xuICAgIGxldCB7IGVsZW1lbnQsIHN0YXRlIH0gPSBjb21wb25lbnQ7XG5cbiAgICByZXR1cm4gdGhpcy5ibG9ja3Moc3RhdGUpLm1hcE9rKFxuICAgICAgKGJsb2NrcykgPT5cbiAgICAgICAgbmV3IG1pci5Db21wb25lbnQoe1xuICAgICAgICAgIGxvYzogZWxlbWVudC5sb2MsXG4gICAgICAgICAgdGFnOiB0aGlzLnRhZyxcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgYXJncyxcbiAgICAgICAgICBibG9ja3MsXG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYmxvY2tzKHN0YXRlOiBOb3JtYWxpemF0aW9uU3RhdGUpOiBSZXN1bHQ8bWlyLk5hbWVkQmxvY2tzPiB7XG4gICAgcmV0dXJuIFZJU0lUX1NUTVRTLk5hbWVkQmxvY2tzKHRoaXMuZWxlbWVudC5ibG9ja3MsIHN0YXRlKTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==