UNPKG

ember-legacy-class-transform

Version:
74 lines (59 loc) 5.71 kB
'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 }; } 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=