ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
56 lines (47 loc) • 5.45 kB
JavaScript
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
import Meta from '../meta';
import { VOLATILE_TAG } from '@glimmer/reference';
export var PropertyReference = function () {
function PropertyReference(object, property, _outer) {
_classCallCheck(this, PropertyReference);
this.tag = VOLATILE_TAG;
this.object = object;
this.property = property;
}
PropertyReference.prototype.value = function value() {
return this.object[this.property];
};
PropertyReference.prototype.label = function label() {
return '[reference Property]';
};
return PropertyReference;
}();
export function ComputedReferenceBlueprint(_property, dependencies) {
return function () {
function ComputedReference(object, property, outer) {
_classCallCheck(this, ComputedReference);
this.installed = false;
this.tag = VOLATILE_TAG;
this.object = object;
this.property = property;
this.dependencies = dependencies;
this.outer = outer;
}
ComputedReference.prototype.value = function value() {
if (!this.installed) {
var root = Meta.for(this.object).root();
this.dependencies.forEach(function (dep) {
var ref = root.referenceFromParts(dep);
ref.value();
});
this.installed = true;
}
return this.object[this.property];
};
ComputedReference.prototype.label = function label() {
return '[reference Computed]';
};
return ComputedReference;
}();
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9yZWZlcmVuY2VzL2Rlc2NyaXB0b3JzLmpzIl0sIm5hbWVzIjpbIk1ldGEiLCJWT0xBVElMRV9UQUciLCJQcm9wZXJ0eVJlZmVyZW5jZSIsIm9iamVjdCIsInByb3BlcnR5IiwiX291dGVyIiwidGFnIiwidmFsdWUiLCJsYWJlbCIsIkNvbXB1dGVkUmVmZXJlbmNlQmx1ZXByaW50IiwiX3Byb3BlcnR5IiwiZGVwZW5kZW5jaWVzIiwib3V0ZXIiLCJpbnN0YWxsZWQiLCJyb290IiwiZm9yIiwiZm9yRWFjaCIsInJlZiIsInJlZmVyZW5jZUZyb21QYXJ0cyIsImRlcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPQSxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixvQkFBN0I7QUFDQSxXQUFhQyxpQkFBYjtBQUNJLCtCQUFZQyxNQUFaLEVBQW9CQyxRQUFwQixFQUE4QkMsTUFBOUIsRUFBc0M7QUFBQTs7QUFDbEMsYUFBS0MsR0FBTCxHQUFXTCxZQUFYO0FBQ0EsYUFBS0UsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsYUFBS0MsUUFBTCxHQUFnQkEsUUFBaEI7QUFDSDs7QUFMTCxnQ0FNSUcsS0FOSixvQkFNWTtBQUNKLGVBQU8sS0FBS0osTUFBTCxDQUFZLEtBQUtDLFFBQWpCLENBQVA7QUFDSCxLQVJMOztBQUFBLGdDQVNJSSxLQVRKLG9CQVNZO0FBQ0osZUFBTyxzQkFBUDtBQUNILEtBWEw7O0FBQUE7QUFBQTtBQWFBLE9BQU8sU0FBU0MsMEJBQVQsQ0FBb0NDLFNBQXBDLEVBQStDQyxZQUEvQyxFQUE2RDtBQUNoRTtBQUNJLG1DQUFZUixNQUFaLEVBQW9CQyxRQUFwQixFQUE4QlEsS0FBOUIsRUFBcUM7QUFBQTs7QUFDakMsaUJBQUtDLFNBQUwsR0FBaUIsS0FBakI7QUFDQSxpQkFBS1AsR0FBTCxHQUFXTCxZQUFYO0FBQ0EsaUJBQUtFLE1BQUwsR0FBY0EsTUFBZDtBQUNBLGlCQUFLQyxRQUFMLEdBQWdCQSxRQUFoQjtBQUNBLGlCQUFLTyxZQUFMLEdBQW9CQSxZQUFwQjtBQUNBLGlCQUFLQyxLQUFMLEdBQWFBLEtBQWI7QUFDSDs7QUFSTCxvQ0FTSUwsS0FUSixvQkFTWTtBQUNKLGdCQUFJLENBQUMsS0FBS00sU0FBVixFQUFxQjtBQUNqQixvQkFBSUMsT0FBT2QsS0FBS2UsR0FBTCxDQUFTLEtBQUtaLE1BQWQsRUFBc0JXLElBQXRCLEVBQVg7QUFDQSxxQkFBS0gsWUFBTCxDQUFrQkssT0FBbEIsQ0FBMEIsZUFBTztBQUM3Qix3QkFBSUMsTUFBTUgsS0FBS0ksa0JBQUwsQ0FBd0JDLEdBQXhCLENBQVY7QUFDQUYsd0JBQUlWLEtBQUo7QUFDSCxpQkFIRDtBQUlBLHFCQUFLTSxTQUFMLEdBQWlCLElBQWpCO0FBQ0g7QUFDRCxtQkFBTyxLQUFLVixNQUFMLENBQVksS0FBS0MsUUFBakIsQ0FBUDtBQUNILFNBbkJMOztBQUFBLG9DQW9CSUksS0FwQkosb0JBb0JZO0FBQ0osbUJBQU8sc0JBQVA7QUFDSCxTQXRCTDs7QUFBQTtBQUFBO0FBd0JIIiwiZmlsZSI6ImxpYi9yZWZlcmVuY2VzL2Rlc2NyaXB0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1ldGEgZnJvbSAnLi4vbWV0YSc7XG5pbXBvcnQgeyBWT0xBVElMRV9UQUcgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5UmVmZXJlbmNlIHtcbiAgICBjb25zdHJ1Y3RvcihvYmplY3QsIHByb3BlcnR5LCBfb3V0ZXIpIHtcbiAgICAgICAgdGhpcy50YWcgPSBWT0xBVElMRV9UQUc7XG4gICAgICAgIHRoaXMub2JqZWN0ID0gb2JqZWN0O1xuICAgICAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgfVxuICAgIHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RbdGhpcy5wcm9wZXJ0eV07XG4gICAgfVxuICAgIGxhYmVsKCkge1xuICAgICAgICByZXR1cm4gJ1tyZWZlcmVuY2UgUHJvcGVydHldJztcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gQ29tcHV0ZWRSZWZlcmVuY2VCbHVlcHJpbnQoX3Byb3BlcnR5LCBkZXBlbmRlbmNpZXMpIHtcbiAgICByZXR1cm4gY2xhc3MgQ29tcHV0ZWRSZWZlcmVuY2Uge1xuICAgICAgICBjb25zdHJ1Y3RvcihvYmplY3QsIHByb3BlcnR5LCBvdXRlcikge1xuICAgICAgICAgICAgdGhpcy5pbnN0YWxsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudGFnID0gVk9MQVRJTEVfVEFHO1xuICAgICAgICAgICAgdGhpcy5vYmplY3QgPSBvYmplY3Q7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgICAgICB0aGlzLmRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llcztcbiAgICAgICAgICAgIHRoaXMub3V0ZXIgPSBvdXRlcjtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbnN0YWxsZWQpIHtcbiAgICAgICAgICAgICAgICBsZXQgcm9vdCA9IE1ldGEuZm9yKHRoaXMub2JqZWN0KS5yb290KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXBlbmRlbmNpZXMuZm9yRWFjaChkZXAgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcmVmID0gcm9vdC5yZWZlcmVuY2VGcm9tUGFydHMoZGVwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVmLnZhbHVlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0W3RoaXMucHJvcGVydHldO1xuICAgICAgICB9XG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuICdbcmVmZXJlbmNlIENvbXB1dGVkXSc7XG4gICAgICAgIH1cbiAgICB9O1xufSJdfQ==