ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
73 lines (70 loc) • 7.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ConditionalReference = exports.FALSE_REFERENCE = exports.TRUE_REFERENCE = exports.NULL_REFERENCE = exports.UNDEFINED_REFERENCE = exports.PrimitiveReference = undefined;
var _reference = require('@glimmer/reference');
class PrimitiveReference extends _reference.ConstReference {
constructor(value) {
super(value);
}
static create(value) {
if (value === undefined) {
return UNDEFINED_REFERENCE;
} else if (value === null) {
return NULL_REFERENCE;
} else if (value === true) {
return TRUE_REFERENCE;
} else if (value === false) {
return FALSE_REFERENCE;
} else if (typeof value === 'number') {
return new ValueReference(value);
} else {
return new StringReference(value);
}
}
get(_key) {
return UNDEFINED_REFERENCE;
}
}
exports.PrimitiveReference = PrimitiveReference;
class StringReference extends PrimitiveReference {
constructor() {
super(...arguments);
this.lengthReference = null;
}
get(key) {
if (key === 'length') {
let { lengthReference } = this;
if (lengthReference === null) {
lengthReference = this.lengthReference = new ValueReference(this.inner.length);
}
return lengthReference;
} else {
return super.get(key);
}
}
}
class ValueReference extends PrimitiveReference {
constructor(value) {
super(value);
}
}
const UNDEFINED_REFERENCE = exports.UNDEFINED_REFERENCE = new ValueReference(undefined);
const NULL_REFERENCE = exports.NULL_REFERENCE = new ValueReference(null);
const TRUE_REFERENCE = exports.TRUE_REFERENCE = new ValueReference(true);
const FALSE_REFERENCE = exports.FALSE_REFERENCE = new ValueReference(false);
class ConditionalReference {
constructor(inner) {
this.inner = inner;
this.tag = inner.tag;
}
value() {
return this.toBool(this.inner.value());
}
toBool(value) {
return !!value;
}
}
exports.ConditionalReference = ConditionalReference;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9yZWZlcmVuY2VzLmpzIl0sIm5hbWVzIjpbIlByaW1pdGl2ZVJlZmVyZW5jZSIsImNvbnN0cnVjdG9yIiwidmFsdWUiLCJjcmVhdGUiLCJ1bmRlZmluZWQiLCJVTkRFRklORURfUkVGRVJFTkNFIiwiTlVMTF9SRUZFUkVOQ0UiLCJUUlVFX1JFRkVSRU5DRSIsIkZBTFNFX1JFRkVSRU5DRSIsIlZhbHVlUmVmZXJlbmNlIiwiU3RyaW5nUmVmZXJlbmNlIiwiZ2V0IiwiX2tleSIsImFyZ3VtZW50cyIsImxlbmd0aFJlZmVyZW5jZSIsImtleSIsImlubmVyIiwibGVuZ3RoIiwiQ29uZGl0aW9uYWxSZWZlcmVuY2UiLCJ0YWciLCJ0b0Jvb2wiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDTyxNQUFNQSxrQkFBTixtQ0FBZ0Q7QUFDbkRDLGdCQUFZQyxLQUFaLEVBQW1CO0FBQ2YsY0FBTUEsS0FBTjtBQUNIO0FBQ0QsV0FBT0MsTUFBUCxDQUFjRCxLQUFkLEVBQXFCO0FBQ2pCLFlBQUlBLFVBQVVFLFNBQWQsRUFBeUI7QUFDckIsbUJBQU9DLG1CQUFQO0FBQ0gsU0FGRCxNQUVPLElBQUlILFVBQVUsSUFBZCxFQUFvQjtBQUN2QixtQkFBT0ksY0FBUDtBQUNILFNBRk0sTUFFQSxJQUFJSixVQUFVLElBQWQsRUFBb0I7QUFDdkIsbUJBQU9LLGNBQVA7QUFDSCxTQUZNLE1BRUEsSUFBSUwsVUFBVSxLQUFkLEVBQXFCO0FBQ3hCLG1CQUFPTSxlQUFQO0FBQ0gsU0FGTSxNQUVBLElBQUksT0FBT04sS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUNsQyxtQkFBTyxJQUFJTyxjQUFKLENBQW1CUCxLQUFuQixDQUFQO0FBQ0gsU0FGTSxNQUVBO0FBQ0gsbUJBQU8sSUFBSVEsZUFBSixDQUFvQlIsS0FBcEIsQ0FBUDtBQUNIO0FBQ0o7QUFDRFMsUUFBSUMsSUFBSixFQUFVO0FBQ04sZUFBT1AsbUJBQVA7QUFDSDtBQXJCa0Q7UUFBMUNMLGtCLEdBQUFBLGtCO0FBdUJiLE1BQU1VLGVBQU4sU0FBOEJWLGtCQUE5QixDQUFpRDtBQUM3Q0Msa0JBQWM7QUFDVixjQUFNLEdBQUdZLFNBQVQ7QUFDQSxhQUFLQyxlQUFMLEdBQXVCLElBQXZCO0FBQ0g7QUFDREgsUUFBSUksR0FBSixFQUFTO0FBQ0wsWUFBSUEsUUFBUSxRQUFaLEVBQXNCO0FBQ2xCLGdCQUFJLEVBQUVELGVBQUYsS0FBc0IsSUFBMUI7QUFDQSxnQkFBSUEsb0JBQW9CLElBQXhCLEVBQThCO0FBQzFCQSxrQ0FBa0IsS0FBS0EsZUFBTCxHQUF1QixJQUFJTCxjQUFKLENBQW1CLEtBQUtPLEtBQUwsQ0FBV0MsTUFBOUIsQ0FBekM7QUFDSDtBQUNELG1CQUFPSCxlQUFQO0FBQ0gsU0FORCxNQU1PO0FBQ0gsbUJBQU8sTUFBTUgsR0FBTixDQUFVSSxHQUFWLENBQVA7QUFDSDtBQUNKO0FBZjRDO0FBaUJqRCxNQUFNTixjQUFOLFNBQTZCVCxrQkFBN0IsQ0FBZ0Q7QUFDNUNDLGdCQUFZQyxLQUFaLEVBQW1CO0FBQ2YsY0FBTUEsS0FBTjtBQUNIO0FBSDJDO0FBS3pDLE1BQU1HLG9EQUFzQixJQUFJSSxjQUFKLENBQW1CTCxTQUFuQixDQUE1QjtBQUNBLE1BQU1FLDBDQUFpQixJQUFJRyxjQUFKLENBQW1CLElBQW5CLENBQXZCO0FBQ0EsTUFBTUYsMENBQWlCLElBQUlFLGNBQUosQ0FBbUIsSUFBbkIsQ0FBdkI7QUFDQSxNQUFNRCw0Q0FBa0IsSUFBSUMsY0FBSixDQUFtQixLQUFuQixDQUF4QjtBQUNBLE1BQU1TLG9CQUFOLENBQTJCO0FBQzlCakIsZ0JBQVllLEtBQVosRUFBbUI7QUFDZixhQUFLQSxLQUFMLEdBQWFBLEtBQWI7QUFDQSxhQUFLRyxHQUFMLEdBQVdILE1BQU1HLEdBQWpCO0FBQ0g7QUFDRGpCLFlBQVE7QUFDSixlQUFPLEtBQUtrQixNQUFMLENBQVksS0FBS0osS0FBTCxDQUFXZCxLQUFYLEVBQVosQ0FBUDtBQUNIO0FBQ0RrQixXQUFPbEIsS0FBUCxFQUFjO0FBQ1YsZUFBTyxDQUFDLENBQUNBLEtBQVQ7QUFDSDtBQVY2QjtRQUFyQmdCLG9CLEdBQUFBLG9CIiwiZmlsZSI6ImxpYi9yZWZlcmVuY2VzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RSZWZlcmVuY2UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuZXhwb3J0IGNsYXNzIFByaW1pdGl2ZVJlZmVyZW5jZSBleHRlbmRzIENvbnN0UmVmZXJlbmNlIHtcbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgICAgICBzdXBlcih2YWx1ZSk7XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBVTkRFRklORURfUkVGRVJFTkNFO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gTlVMTF9SRUZFUkVOQ0U7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiBUUlVFX1JFRkVSRU5DRTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBGQUxTRV9SRUZFUkVOQ0U7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBWYWx1ZVJlZmVyZW5jZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1JlZmVyZW5jZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0KF9rZXkpIHtcbiAgICAgICAgcmV0dXJuIFVOREVGSU5FRF9SRUZFUkVOQ0U7XG4gICAgfVxufVxuY2xhc3MgU3RyaW5nUmVmZXJlbmNlIGV4dGVuZHMgUHJpbWl0aXZlUmVmZXJlbmNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5sZW5ndGhSZWZlcmVuY2UgPSBudWxsO1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdsZW5ndGgnKSB7XG4gICAgICAgICAgICBsZXQgeyBsZW5ndGhSZWZlcmVuY2UgfSA9IHRoaXM7XG4gICAgICAgICAgICBpZiAobGVuZ3RoUmVmZXJlbmNlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbGVuZ3RoUmVmZXJlbmNlID0gdGhpcy5sZW5ndGhSZWZlcmVuY2UgPSBuZXcgVmFsdWVSZWZlcmVuY2UodGhpcy5pbm5lci5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGxlbmd0aFJlZmVyZW5jZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBzdXBlci5nZXQoa2V5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmNsYXNzIFZhbHVlUmVmZXJlbmNlIGV4dGVuZHMgUHJpbWl0aXZlUmVmZXJlbmNlIHtcbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgICAgICBzdXBlcih2YWx1ZSk7XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IFVOREVGSU5FRF9SRUZFUkVOQ0UgPSBuZXcgVmFsdWVSZWZlcmVuY2UodW5kZWZpbmVkKTtcbmV4cG9ydCBjb25zdCBOVUxMX1JFRkVSRU5DRSA9IG5ldyBWYWx1ZVJlZmVyZW5jZShudWxsKTtcbmV4cG9ydCBjb25zdCBUUlVFX1JFRkVSRU5DRSA9IG5ldyBWYWx1ZVJlZmVyZW5jZSh0cnVlKTtcbmV4cG9ydCBjb25zdCBGQUxTRV9SRUZFUkVOQ0UgPSBuZXcgVmFsdWVSZWZlcmVuY2UoZmFsc2UpO1xuZXhwb3J0IGNsYXNzIENvbmRpdGlvbmFsUmVmZXJlbmNlIHtcbiAgICBjb25zdHJ1Y3Rvcihpbm5lcikge1xuICAgICAgICB0aGlzLmlubmVyID0gaW5uZXI7XG4gICAgICAgIHRoaXMudGFnID0gaW5uZXIudGFnO1xuICAgIH1cbiAgICB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9Cb29sKHRoaXMuaW5uZXIudmFsdWUoKSk7XG4gICAgfVxuICAgIHRvQm9vbCh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gISF2YWx1ZTtcbiAgICB9XG59Il19