ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
74 lines (59 loc) • 5.71 kB
JavaScript
;
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 }; }
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
var PropertyReference = exports.PropertyReference = function () {
function PropertyReference(object, property, _outer) {
_classCallCheck(this, PropertyReference);
this.tag = _reference.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;
}();
function ComputedReferenceBlueprint(_property, dependencies) {
return function () {
function ComputedReference(object, property, outer) {
_classCallCheck(this, ComputedReference);
this.installed = false;
this.tag = _reference.VOLATILE_TAG;
this.object = object;
this.property = property;
this.dependencies = dependencies;
this.outer = outer;
}
ComputedReference.prototype.value = function value() {
if (!this.installed) {
var root = _meta2.default.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9yZWZlcmVuY2VzL2Rlc2NyaXB0b3JzLmpzIl0sIm5hbWVzIjpbIk1ldGEiLCJWT0xBVElMRV9UQUciLCJQcm9wZXJ0eVJlZmVyZW5jZSIsIm9iamVjdCIsInByb3BlcnR5IiwiX291dGVyIiwidGFnIiwidmFsdWUiLCJsYWJlbCIsIkNvbXB1dGVkUmVmZXJlbmNlQmx1ZXByaW50IiwiX3Byb3BlcnR5IiwiZGVwZW5kZW5jaWVzIiwib3V0ZXIiLCJpbnN0YWxsZWQiLCJyb290IiwiZm9yIiwiZm9yRWFjaCIsInJlZiIsInJlZmVyZW5jZUZyb21QYXJ0cyIsImRlcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O1FBZU8sQUFBUzs7QUFmaEIsQUFBTyxBQUFVOzs7O0FBQ2pCLEFBQVMsQUFBb0IsQUFDN0I7Ozs7Ozs7Ozs7SUFBQSxBQUFhLDREQUNUOytCQUFBLEFBQVksUUFBWixBQUFvQixVQUFwQixBQUE4QixRQUFROzhCQUNsQzs7YUFBQSxBQUFLLEFBQU0sQUFDWDthQUFBLEFBQUssU0FBTCxBQUFjLEFBQ2Q7YUFBQSxBQUFLLFdBQUwsQUFBZ0IsQUFDbkI7QUFMTDs7Z0NBQUEsQUFNSSx5QkFBUSxBQUNKO2VBQU8sS0FBQSxBQUFLLE9BQU8sS0FBbkIsQUFBTyxBQUFpQixBQUMzQjtBQVJMOztnQ0FBQSxBQVNJLHlCQUFRLEFBQ0o7ZUFBQSxBQUFPLEFBQ1Y7QUFYTDs7V0FBQTtBQWFBO0FBQU8sb0NBQUEsQUFBb0MsV0FBcEMsQUFBK0MsY0FBYyxBQUNoRTt1QkFDSTttQ0FBQSxBQUFZLFFBQVosQUFBb0IsVUFBcEIsQUFBOEIsT0FBTztrQ0FDakM7O2lCQUFBLEFBQUssWUFBTCxBQUFpQixBQUNqQjtpQkFBQSxBQUFLLEFBQU0sQUFDWDtpQkFBQSxBQUFLLFNBQUwsQUFBYyxBQUNkO2lCQUFBLEFBQUssV0FBTCxBQUFnQixBQUNoQjtpQkFBQSxBQUFLLGVBQUwsQUFBb0IsQUFDcEI7aUJBQUEsQUFBSyxRQUFMLEFBQWEsQUFDaEI7QUFSTDs7b0NBQUEsQUFTSSx5QkFBUSxBQUNKO2dCQUFJLENBQUMsS0FBTCxBQUFVLFdBQVcsQUFDakI7b0JBQUksT0FBTyxlQUFBLEFBQUssSUFBSSxLQUFULEFBQWMsUUFBekIsQUFBVyxBQUFzQixBQUNqQztxQkFBQSxBQUFLLGFBQUwsQUFBa0IsUUFBUSxlQUFPLEFBQzdCO3dCQUFJLE1BQU0sS0FBQSxBQUFLLG1CQUFmLEFBQVUsQUFBd0IsQUFDbEM7d0JBQUEsQUFBSSxBQUNQO0FBSEQsQUFJQTtxQkFBQSxBQUFLLFlBQUwsQUFBaUIsQUFDcEI7QUFDRDttQkFBTyxLQUFBLEFBQUssT0FBTyxLQUFuQixBQUFPLEFBQWlCLEFBQzNCO0FBbkJMOztvQ0FBQSxBQW9CSSx5QkFBUSxBQUNKO21CQUFBLEFBQU8sQUFDVjtBQXRCTDs7ZUFBQTtBQXdCSCIsImZpbGUiOiJsaWIvcmVmZXJlbmNlcy9kZXNjcmlwdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNZXRhIGZyb20gJy4uL21ldGEnO1xuaW1wb3J0IHsgVk9MQVRJTEVfVEFHIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVJlZmVyZW5jZSB7XG4gICAgY29uc3RydWN0b3Iob2JqZWN0LCBwcm9wZXJ0eSwgX291dGVyKSB7XG4gICAgICAgIHRoaXMudGFnID0gVk9MQVRJTEVfVEFHO1xuICAgICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgIH1cbiAgICB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0W3RoaXMucHJvcGVydHldO1xuICAgIH1cbiAgICBsYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuICdbcmVmZXJlbmNlIFByb3BlcnR5XSc7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIENvbXB1dGVkUmVmZXJlbmNlQmx1ZXByaW50KF9wcm9wZXJ0eSwgZGVwZW5kZW5jaWVzKSB7XG4gICAgcmV0dXJuIGNsYXNzIENvbXB1dGVkUmVmZXJlbmNlIHtcbiAgICAgICAgY29uc3RydWN0b3Iob2JqZWN0LCBwcm9wZXJ0eSwgb3V0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnRhZyA9IFZPTEFUSUxFX1RBRztcbiAgICAgICAgICAgIHRoaXMub2JqZWN0ID0gb2JqZWN0O1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgICAgICAgICAgdGhpcy5kZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXM7XG4gICAgICAgICAgICB0aGlzLm91dGVyID0gb3V0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaW5zdGFsbGVkKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJvb3QgPSBNZXRhLmZvcih0aGlzLm9iamVjdCkucm9vdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZiA9IHJvb3QucmVmZXJlbmNlRnJvbVBhcnRzKGRlcCk7XG4gICAgICAgICAgICAgICAgICAgIHJlZi52YWx1ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9iamVjdFt0aGlzLnByb3BlcnR5XTtcbiAgICAgICAgfVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiAnW3JlZmVyZW5jZSBDb21wdXRlZF0nO1xuICAgICAgICB9XG4gICAgfTtcbn0iXX0=