ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
35 lines (32 loc) • 3.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _reference = require('@glimmer/reference');
class DynamicVarReference {
constructor(scope, nameRef) {
this.scope = scope;
this.nameRef = nameRef;
let varTag = this.varTag = _reference.UpdatableTag.create(_reference.CONSTANT_TAG);
this.tag = (0, _reference.combine)([nameRef.tag, varTag]);
}
value() {
return this.getVar().value();
}
get(key) {
return this.getVar().get(key);
}
getVar() {
let name = String(this.nameRef.value());
let ref = this.scope.get(name);
this.varTag.inner.update(ref.tag);
return ref;
}
}
function getDynamicVar(vm, args) {
let scope = vm.dynamicScope();
let nameRef = args.positional.at(0);
return new DynamicVarReference(scope, nameRef);
}
exports.default = getDynamicVar;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9oZWxwZXJzL2dldC1keW5hbWljLXZhci5qcyJdLCJuYW1lcyI6WyJEeW5hbWljVmFyUmVmZXJlbmNlIiwiY29uc3RydWN0b3IiLCJzY29wZSIsIm5hbWVSZWYiLCJ2YXJUYWciLCJjcmVhdGUiLCJ0YWciLCJ2YWx1ZSIsImdldFZhciIsImdldCIsImtleSIsIm5hbWUiLCJTdHJpbmciLCJyZWYiLCJpbm5lciIsInVwZGF0ZSIsImdldER5bmFtaWNWYXIiLCJ2bSIsImFyZ3MiLCJkeW5hbWljU2NvcGUiLCJwb3NpdGlvbmFsIiwiYXQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBLE1BQU1BLG1CQUFOLENBQTBCO0FBQ3RCQyxnQkFBWUMsS0FBWixFQUFtQkMsT0FBbkIsRUFBNEI7QUFDeEIsYUFBS0QsS0FBTCxHQUFhQSxLQUFiO0FBQ0EsYUFBS0MsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsWUFBSUMsU0FBUyxLQUFLQSxNQUFMLEdBQWMsd0JBQWFDLE1BQWIseUJBQTNCO0FBQ0EsYUFBS0MsR0FBTCxHQUFXLHdCQUFRLENBQUNILFFBQVFHLEdBQVQsRUFBY0YsTUFBZCxDQUFSLENBQVg7QUFDSDtBQUNERyxZQUFRO0FBQ0osZUFBTyxLQUFLQyxNQUFMLEdBQWNELEtBQWQsRUFBUDtBQUNIO0FBQ0RFLFFBQUlDLEdBQUosRUFBUztBQUNMLGVBQU8sS0FBS0YsTUFBTCxHQUFjQyxHQUFkLENBQWtCQyxHQUFsQixDQUFQO0FBQ0g7QUFDREYsYUFBUztBQUNMLFlBQUlHLE9BQU9DLE9BQU8sS0FBS1QsT0FBTCxDQUFhSSxLQUFiLEVBQVAsQ0FBWDtBQUNBLFlBQUlNLE1BQU0sS0FBS1gsS0FBTCxDQUFXTyxHQUFYLENBQWVFLElBQWYsQ0FBVjtBQUNBLGFBQUtQLE1BQUwsQ0FBWVUsS0FBWixDQUFrQkMsTUFBbEIsQ0FBeUJGLElBQUlQLEdBQTdCO0FBQ0EsZUFBT08sR0FBUDtBQUNIO0FBbEJxQjtBQW9CMUIsU0FBU0csYUFBVCxDQUF1QkMsRUFBdkIsRUFBMkJDLElBQTNCLEVBQWlDO0FBQzdCLFFBQUloQixRQUFRZSxHQUFHRSxZQUFILEVBQVo7QUFDQSxRQUFJaEIsVUFBVWUsS0FBS0UsVUFBTCxDQUFnQkMsRUFBaEIsQ0FBbUIsQ0FBbkIsQ0FBZDtBQUNBLFdBQU8sSUFBSXJCLG1CQUFKLENBQXdCRSxLQUF4QixFQUErQkMsT0FBL0IsQ0FBUDtBQUNIO2tCQUNjYSxhIiwiZmlsZSI6ImxpYi9oZWxwZXJzL2dldC1keW5hbWljLXZhci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTlNUQU5UX1RBRywgVXBkYXRhYmxlVGFnLCBjb21iaW5lIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmNsYXNzIER5bmFtaWNWYXJSZWZlcmVuY2Uge1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlLCBuYW1lUmVmKSB7XG4gICAgICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcbiAgICAgICAgdGhpcy5uYW1lUmVmID0gbmFtZVJlZjtcbiAgICAgICAgbGV0IHZhclRhZyA9IHRoaXMudmFyVGFnID0gVXBkYXRhYmxlVGFnLmNyZWF0ZShDT05TVEFOVF9UQUcpO1xuICAgICAgICB0aGlzLnRhZyA9IGNvbWJpbmUoW25hbWVSZWYudGFnLCB2YXJUYWddKTtcbiAgICB9XG4gICAgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhcigpLnZhbHVlKCk7XG4gICAgfVxuICAgIGdldChrZXkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFyKCkuZ2V0KGtleSk7XG4gICAgfVxuICAgIGdldFZhcigpIHtcbiAgICAgICAgbGV0IG5hbWUgPSBTdHJpbmcodGhpcy5uYW1lUmVmLnZhbHVlKCkpO1xuICAgICAgICBsZXQgcmVmID0gdGhpcy5zY29wZS5nZXQobmFtZSk7XG4gICAgICAgIHRoaXMudmFyVGFnLmlubmVyLnVwZGF0ZShyZWYudGFnKTtcbiAgICAgICAgcmV0dXJuIHJlZjtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXREeW5hbWljVmFyKHZtLCBhcmdzKSB7XG4gICAgbGV0IHNjb3BlID0gdm0uZHluYW1pY1Njb3BlKCk7XG4gICAgbGV0IG5hbWVSZWYgPSBhcmdzLnBvc2l0aW9uYWwuYXQoMCk7XG4gICAgcmV0dXJuIG5ldyBEeW5hbWljVmFyUmVmZXJlbmNlKHNjb3BlLCBuYW1lUmVmKTtcbn1cbmV4cG9ydCBkZWZhdWx0IGdldER5bmFtaWNWYXI7Il19