ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
57 lines (51 loc) • 5.2 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PropertyReference = undefined;
exports.ComputedReferenceBlueprint = ComputedReferenceBlueprint;
var _meta = require('../meta');
var _meta2 = _interopRequireDefault(_meta);
var _reference = require('@glimmer/reference');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class PropertyReference {
constructor(object, property, _outer) {
this.tag = _reference.VOLATILE_TAG;
this.object = object;
this.property = property;
}
value() {
return this.object[this.property];
}
label() {
return '[reference Property]';
}
}
exports.PropertyReference = PropertyReference;
function ComputedReferenceBlueprint(_property, dependencies) {
return class ComputedReference {
constructor(object, property, outer) {
this.installed = false;
this.tag = _reference.VOLATILE_TAG;
this.object = object;
this.property = property;
this.dependencies = dependencies;
this.outer = outer;
}
value() {
if (!this.installed) {
let root = _meta2.default.for(this.object).root();
this.dependencies.forEach(dep => {
let ref = root.referenceFromParts(dep);
ref.value();
});
this.installed = true;
}
return this.object[this.property];
}
label() {
return '[reference Computed]';
}
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9yZWZlcmVuY2VzL2Rlc2NyaXB0b3JzLmpzIl0sIm5hbWVzIjpbIkNvbXB1dGVkUmVmZXJlbmNlQmx1ZXByaW50IiwiUHJvcGVydHlSZWZlcmVuY2UiLCJjb25zdHJ1Y3RvciIsIm9iamVjdCIsInByb3BlcnR5IiwiX291dGVyIiwidGFnIiwidmFsdWUiLCJsYWJlbCIsIl9wcm9wZXJ0eSIsImRlcGVuZGVuY2llcyIsIkNvbXB1dGVkUmVmZXJlbmNlIiwib3V0ZXIiLCJpbnN0YWxsZWQiLCJyb290IiwiZm9yIiwiZm9yRWFjaCIsImRlcCIsInJlZiIsInJlZmVyZW5jZUZyb21QYXJ0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O1FBZWdCQSwwQixHQUFBQSwwQjs7QUFmaEI7Ozs7QUFDQTs7OztBQUNPLE1BQU1DLGlCQUFOLENBQXdCO0FBQzNCQyxnQkFBWUMsTUFBWixFQUFvQkMsUUFBcEIsRUFBOEJDLE1BQTlCLEVBQXNDO0FBQ2xDLGFBQUtDLEdBQUw7QUFDQSxhQUFLSCxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxhQUFLQyxRQUFMLEdBQWdCQSxRQUFoQjtBQUNIO0FBQ0RHLFlBQVE7QUFDSixlQUFPLEtBQUtKLE1BQUwsQ0FBWSxLQUFLQyxRQUFqQixDQUFQO0FBQ0g7QUFDREksWUFBUTtBQUNKLGVBQU8sc0JBQVA7QUFDSDtBQVgwQjtRQUFsQlAsaUIsR0FBQUEsaUI7QUFhTixTQUFTRCwwQkFBVCxDQUFvQ1MsU0FBcEMsRUFBK0NDLFlBQS9DLEVBQTZEO0FBQ2hFLFdBQU8sTUFBTUMsaUJBQU4sQ0FBd0I7QUFDM0JULG9CQUFZQyxNQUFaLEVBQW9CQyxRQUFwQixFQUE4QlEsS0FBOUIsRUFBcUM7QUFDakMsaUJBQUtDLFNBQUwsR0FBaUIsS0FBakI7QUFDQSxpQkFBS1AsR0FBTDtBQUNBLGlCQUFLSCxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxpQkFBS0MsUUFBTCxHQUFnQkEsUUFBaEI7QUFDQSxpQkFBS00sWUFBTCxHQUFvQkEsWUFBcEI7QUFDQSxpQkFBS0UsS0FBTCxHQUFhQSxLQUFiO0FBQ0g7QUFDREwsZ0JBQVE7QUFDSixnQkFBSSxDQUFDLEtBQUtNLFNBQVYsRUFBcUI7QUFDakIsb0JBQUlDLE9BQU8sZUFBS0MsR0FBTCxDQUFTLEtBQUtaLE1BQWQsRUFBc0JXLElBQXRCLEVBQVg7QUFDQSxxQkFBS0osWUFBTCxDQUFrQk0sT0FBbEIsQ0FBMEJDLE9BQU87QUFDN0Isd0JBQUlDLE1BQU1KLEtBQUtLLGtCQUFMLENBQXdCRixHQUF4QixDQUFWO0FBQ0FDLHdCQUFJWCxLQUFKO0FBQ0gsaUJBSEQ7QUFJQSxxQkFBS00sU0FBTCxHQUFpQixJQUFqQjtBQUNIO0FBQ0QsbUJBQU8sS0FBS1YsTUFBTCxDQUFZLEtBQUtDLFFBQWpCLENBQVA7QUFDSDtBQUNESSxnQkFBUTtBQUNKLG1CQUFPLHNCQUFQO0FBQ0g7QUF0QjBCLEtBQS9CO0FBd0JIIiwiZmlsZSI6ImxpYi9yZWZlcmVuY2VzL2Rlc2NyaXB0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1ldGEgZnJvbSAnLi4vbWV0YSc7XG5pbXBvcnQgeyBWT0xBVElMRV9UQUcgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5UmVmZXJlbmNlIHtcbiAgICBjb25zdHJ1Y3RvcihvYmplY3QsIHByb3BlcnR5LCBfb3V0ZXIpIHtcbiAgICAgICAgdGhpcy50YWcgPSBWT0xBVElMRV9UQUc7XG4gICAgICAgIHRoaXMub2JqZWN0ID0gb2JqZWN0O1xuICAgICAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgfVxuICAgIHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RbdGhpcy5wcm9wZXJ0eV07XG4gICAgfVxuICAgIGxhYmVsKCkge1xuICAgICAgICByZXR1cm4gJ1tyZWZlcmVuY2UgUHJvcGVydHldJztcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gQ29tcHV0ZWRSZWZlcmVuY2VCbHVlcHJpbnQoX3Byb3BlcnR5LCBkZXBlbmRlbmNpZXMpIHtcbiAgICByZXR1cm4gY2xhc3MgQ29tcHV0ZWRSZWZlcmVuY2Uge1xuICAgICAgICBjb25zdHJ1Y3RvcihvYmplY3QsIHByb3BlcnR5LCBvdXRlcikge1xuICAgICAgICAgICAgdGhpcy5pbnN0YWxsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudGFnID0gVk9MQVRJTEVfVEFHO1xuICAgICAgICAgICAgdGhpcy5vYmplY3QgPSBvYmplY3Q7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgICAgICB0aGlzLmRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llcztcbiAgICAgICAgICAgIHRoaXMub3V0ZXIgPSBvdXRlcjtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbnN0YWxsZWQpIHtcbiAgICAgICAgICAgICAgICBsZXQgcm9vdCA9IE1ldGEuZm9yKHRoaXMub2JqZWN0KS5yb290KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXBlbmRlbmNpZXMuZm9yRWFjaChkZXAgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcmVmID0gcm9vdC5yZWZlcmVuY2VGcm9tUGFydHMoZGVwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVmLnZhbHVlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0W3RoaXMucHJvcGVydHldO1xuICAgICAgICB9XG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuICdbcmVmZXJlbmNlIENvbXB1dGVkXSc7XG4gICAgICAgIH1cbiAgICB9O1xufSJdfQ==