ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
69 lines (53 loc) • 4.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = require('@glimmer/util');
var _path = require('./path');
var _reference = require('@glimmer/reference');
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
var RootReference = function () {
function RootReference(object) {
_classCallCheck(this, RootReference);
this.chains = (0, _util.dict)();
this.tag = _reference.VOLATILE_TAG;
this.object = object;
}
RootReference.prototype.value = function value() {
return this.object;
};
RootReference.prototype.update = function update(object) {
this.object = object;
// this.notify();
};
RootReference.prototype.get = function get(prop) {
var chains = this.chains;
if (prop in chains) return chains[prop];
return chains[prop] = new _path.PathReference(this, prop);
};
RootReference.prototype.chainFor = function chainFor(prop) {
var chains = this.chains;
if (prop in chains) return chains[prop];
return null;
};
RootReference.prototype.path = function path(string) {
return string.split('.').reduce(function (ref, part) {
return ref.get(part);
}, this);
};
RootReference.prototype.referenceFromParts = function referenceFromParts(parts) {
return parts.reduce(function (ref, part) {
return ref.get(part);
}, this);
};
RootReference.prototype.label = function label() {
return '[reference Root]';
};
return RootReference;
}();
exports.default = RootReference;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9yZWZlcmVuY2VzL3Jvb3QuanMiXSwibmFtZXMiOlsiZGljdCIsIlBhdGhSZWZlcmVuY2UiLCJWT0xBVElMRV9UQUciLCJSb290UmVmZXJlbmNlIiwib2JqZWN0IiwiY2hhaW5zIiwidGFnIiwidmFsdWUiLCJ1cGRhdGUiLCJnZXQiLCJwcm9wIiwiY2hhaW5Gb3IiLCJwYXRoIiwic3RyaW5nIiwic3BsaXQiLCJyZWR1Y2UiLCJyZWYiLCJwYXJ0IiwicmVmZXJlbmNlRnJvbVBhcnRzIiwicGFydHMiLCJsYWJlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsQUFBUyxBQUFZOztBQUNyQixBQUFTLEFBQXFCOztBQUM5QixBQUFTLEFBQW9COzs7Ozs7OztJQUNSLEEsNEJBQ2pCOzJCQUFBLEFBQVksUUFBUTs4QkFDaEI7O2FBQUEsQUFBSyxTQUFMLEFBQWMsQUFDZDthQUFBLEFBQUssQUFBTSxBQUNYO2FBQUEsQUFBSyxTQUFMLEFBQWMsQUFDakI7Ozs0QkFDRCxBLHlCQUFRLEFBQ0o7ZUFBTyxLQUFQLEFBQVksQUFDZjtBOzs0QkFDRCxBLHlCLEFBQU8sUUFBUSxBQUNYO2FBQUEsQUFBSyxTQUFMLEFBQWMsQUFDZDtBQUNIO0E7OzRCLEFBQ0QsbUJBQUksQSxNQUFNLEFBQ047WUFBSSxTQUFTLEtBQWIsQUFBa0IsQUFDbEI7WUFBSSxRQUFKLEFBQVksUUFBUSxPQUFPLE9BQVAsQUFBTyxBQUFPLEFBQ2xDO2VBQU8sT0FBQSxBQUFPLFFBQVEsQUFBSSx3QkFBSixBQUFrQixNQUF4QyxBQUFzQixBQUF3QixBQUNqRDtBOzs0QixBQUNELDZCQUFTLEEsTUFBTSxBQUNYO1lBQUksU0FBUyxLQUFiLEFBQWtCLEFBQ2xCO1lBQUksUUFBSixBQUFZLFFBQVEsT0FBTyxPQUFQLEFBQU8sQUFBTyxBQUNsQztlQUFBLEFBQU8sQUFDVjtBOzs0QkFDRCxBLHFCLEFBQUssUUFBUSxBQUNUO3NCQUFPLEFBQU8sTUFBUCxBQUFhLEtBQWIsQUFBa0IsT0FBTyxVQUFBLEFBQUMsS0FBRCxBQUFNLE1BQU47bUJBQWUsSUFBQSxBQUFJLElBQW5CLEFBQWUsQUFBUTtBQUFoRCxTQUFBLEVBQVAsQUFBTyxBQUF1RCxBQUNqRTtBOzs0QkFDRCxBLGlEQUFtQixBLE9BQU8sQUFDdEI7cUJBQU8sQUFBTSxPQUFPLFVBQUEsQUFBQyxLQUFELEFBQU0sTUFBTjttQkFBZSxJQUFBLEFBQUksSUFBbkIsQUFBZSxBQUFRO0FBQXBDLFNBQUEsRUFBUCxBQUFPLEFBQTJDLEFBQ3JEO0E7OzRCLEFBQ0QseUJBQVEsQUFDSjtlQUFBLEFBQU8sQUFDVjtBOzs7OztrQkEvQmdCLEEiLCJmaWxlIjoibGliL3JlZmVyZW5jZXMvcm9vdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IFBhdGhSZWZlcmVuY2UgfSBmcm9tICcuL3BhdGgnO1xuaW1wb3J0IHsgVk9MQVRJTEVfVEFHIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvb3RSZWZlcmVuY2Uge1xuICAgIGNvbnN0cnVjdG9yKG9iamVjdCkge1xuICAgICAgICB0aGlzLmNoYWlucyA9IGRpY3QoKTtcbiAgICAgICAgdGhpcy50YWcgPSBWT0xBVElMRV9UQUc7XG4gICAgICAgIHRoaXMub2JqZWN0ID0gb2JqZWN0O1xuICAgIH1cbiAgICB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0O1xuICAgIH1cbiAgICB1cGRhdGUob2JqZWN0KSB7XG4gICAgICAgIHRoaXMub2JqZWN0ID0gb2JqZWN0O1xuICAgICAgICAvLyB0aGlzLm5vdGlmeSgpO1xuICAgIH1cbiAgICBnZXQocHJvcCkge1xuICAgICAgICBsZXQgY2hhaW5zID0gdGhpcy5jaGFpbnM7XG4gICAgICAgIGlmIChwcm9wIGluIGNoYWlucykgcmV0dXJuIGNoYWluc1twcm9wXTtcbiAgICAgICAgcmV0dXJuIGNoYWluc1twcm9wXSA9IG5ldyBQYXRoUmVmZXJlbmNlKHRoaXMsIHByb3ApO1xuICAgIH1cbiAgICBjaGFpbkZvcihwcm9wKSB7XG4gICAgICAgIGxldCBjaGFpbnMgPSB0aGlzLmNoYWlucztcbiAgICAgICAgaWYgKHByb3AgaW4gY2hhaW5zKSByZXR1cm4gY2hhaW5zW3Byb3BdO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcGF0aChzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5zcGxpdCgnLicpLnJlZHVjZSgocmVmLCBwYXJ0KSA9PiByZWYuZ2V0KHBhcnQpLCB0aGlzKTtcbiAgICB9XG4gICAgcmVmZXJlbmNlRnJvbVBhcnRzKHBhcnRzKSB7XG4gICAgICAgIHJldHVybiBwYXJ0cy5yZWR1Y2UoKHJlZiwgcGFydCkgPT4gcmVmLmdldChwYXJ0KSwgdGhpcyk7XG4gICAgfVxuICAgIGxhYmVsKCkge1xuICAgICAgICByZXR1cm4gJ1tyZWZlcmVuY2UgUm9vdF0nO1xuICAgIH1cbn0iXX0=