UNPKG

ember-legacy-class-transform

Version:
57 lines (51 loc) 5.2 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 }; } 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==