ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
47 lines (42 loc) • 4.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = require('@glimmer/util');
var _path = require('./path');
var _reference = require('@glimmer/reference');
class RootReference {
constructor(object) {
this.chains = (0, _util.dict)();
this.tag = _reference.VOLATILE_TAG;
this.object = object;
}
value() {
return this.object;
}
update(object) {
this.object = object;
// this.notify();
}
get(prop) {
let chains = this.chains;
if (prop in chains) return chains[prop];
return chains[prop] = new _path.PathReference(this, prop);
}
chainFor(prop) {
let chains = this.chains;
if (prop in chains) return chains[prop];
return null;
}
path(string) {
return string.split('.').reduce((ref, part) => ref.get(part), this);
}
referenceFromParts(parts) {
return parts.reduce((ref, part) => ref.get(part), this);
}
label() {
return '[reference Root]';
}
}
exports.default = RootReference;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9yZWZlcmVuY2VzL3Jvb3QuanMiXSwibmFtZXMiOlsiUm9vdFJlZmVyZW5jZSIsImNvbnN0cnVjdG9yIiwib2JqZWN0IiwiY2hhaW5zIiwidGFnIiwidmFsdWUiLCJ1cGRhdGUiLCJnZXQiLCJwcm9wIiwiY2hhaW5Gb3IiLCJwYXRoIiwic3RyaW5nIiwic3BsaXQiLCJyZWR1Y2UiLCJyZWYiLCJwYXJ0IiwicmVmZXJlbmNlRnJvbVBhcnRzIiwicGFydHMiLCJsYWJlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ2UsTUFBTUEsYUFBTixDQUFvQjtBQUMvQkMsZ0JBQVlDLE1BQVosRUFBb0I7QUFDaEIsYUFBS0MsTUFBTCxHQUFjLGlCQUFkO0FBQ0EsYUFBS0MsR0FBTDtBQUNBLGFBQUtGLE1BQUwsR0FBY0EsTUFBZDtBQUNIO0FBQ0RHLFlBQVE7QUFDSixlQUFPLEtBQUtILE1BQVo7QUFDSDtBQUNESSxXQUFPSixNQUFQLEVBQWU7QUFDWCxhQUFLQSxNQUFMLEdBQWNBLE1BQWQ7QUFDQTtBQUNIO0FBQ0RLLFFBQUlDLElBQUosRUFBVTtBQUNOLFlBQUlMLFNBQVMsS0FBS0EsTUFBbEI7QUFDQSxZQUFJSyxRQUFRTCxNQUFaLEVBQW9CLE9BQU9BLE9BQU9LLElBQVAsQ0FBUDtBQUNwQixlQUFPTCxPQUFPSyxJQUFQLElBQWUsd0JBQWtCLElBQWxCLEVBQXdCQSxJQUF4QixDQUF0QjtBQUNIO0FBQ0RDLGFBQVNELElBQVQsRUFBZTtBQUNYLFlBQUlMLFNBQVMsS0FBS0EsTUFBbEI7QUFDQSxZQUFJSyxRQUFRTCxNQUFaLEVBQW9CLE9BQU9BLE9BQU9LLElBQVAsQ0FBUDtBQUNwQixlQUFPLElBQVA7QUFDSDtBQUNERSxTQUFLQyxNQUFMLEVBQWE7QUFDVCxlQUFPQSxPQUFPQyxLQUFQLENBQWEsR0FBYixFQUFrQkMsTUFBbEIsQ0FBeUIsQ0FBQ0MsR0FBRCxFQUFNQyxJQUFOLEtBQWVELElBQUlQLEdBQUosQ0FBUVEsSUFBUixDQUF4QyxFQUF1RCxJQUF2RCxDQUFQO0FBQ0g7QUFDREMsdUJBQW1CQyxLQUFuQixFQUEwQjtBQUN0QixlQUFPQSxNQUFNSixNQUFOLENBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxJQUFOLEtBQWVELElBQUlQLEdBQUosQ0FBUVEsSUFBUixDQUE1QixFQUEyQyxJQUEzQyxDQUFQO0FBQ0g7QUFDREcsWUFBUTtBQUNKLGVBQU8sa0JBQVA7QUFDSDtBQS9COEI7a0JBQWRsQixhIiwiZmlsZSI6ImxpYi9yZWZlcmVuY2VzL3Jvb3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBQYXRoUmVmZXJlbmNlIH0gZnJvbSAnLi9wYXRoJztcbmltcG9ydCB7IFZPTEFUSUxFX1RBRyB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSb290UmVmZXJlbmNlIHtcbiAgICBjb25zdHJ1Y3RvcihvYmplY3QpIHtcbiAgICAgICAgdGhpcy5jaGFpbnMgPSBkaWN0KCk7XG4gICAgICAgIHRoaXMudGFnID0gVk9MQVRJTEVfVEFHO1xuICAgICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDtcbiAgICB9XG4gICAgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdDtcbiAgICB9XG4gICAgdXBkYXRlKG9iamVjdCkge1xuICAgICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDtcbiAgICAgICAgLy8gdGhpcy5ub3RpZnkoKTtcbiAgICB9XG4gICAgZ2V0KHByb3ApIHtcbiAgICAgICAgbGV0IGNoYWlucyA9IHRoaXMuY2hhaW5zO1xuICAgICAgICBpZiAocHJvcCBpbiBjaGFpbnMpIHJldHVybiBjaGFpbnNbcHJvcF07XG4gICAgICAgIHJldHVybiBjaGFpbnNbcHJvcF0gPSBuZXcgUGF0aFJlZmVyZW5jZSh0aGlzLCBwcm9wKTtcbiAgICB9XG4gICAgY2hhaW5Gb3IocHJvcCkge1xuICAgICAgICBsZXQgY2hhaW5zID0gdGhpcy5jaGFpbnM7XG4gICAgICAgIGlmIChwcm9wIGluIGNoYWlucykgcmV0dXJuIGNoYWluc1twcm9wXTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHBhdGgoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQoJy4nKS5yZWR1Y2UoKHJlZiwgcGFydCkgPT4gcmVmLmdldChwYXJ0KSwgdGhpcyk7XG4gICAgfVxuICAgIHJlZmVyZW5jZUZyb21QYXJ0cyhwYXJ0cykge1xuICAgICAgICByZXR1cm4gcGFydHMucmVkdWNlKChyZWYsIHBhcnQpID0+IHJlZi5nZXQocGFydCksIHRoaXMpO1xuICAgIH1cbiAgICBsYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuICdbcmVmZXJlbmNlIFJvb3RdJztcbiAgICB9XG59Il19