@itrocks/framework
Version:
RAD framework for intuitive web application development, blending data and domain-driven design with modular architecture
34 lines • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ReflectClass = void 0;
const reflect_1 = require("@itrocks/reflect");
const uses_1 = require("@itrocks/uses");
const reflect_property_1 = require("./reflect-property");
class ReflectClass extends reflect_1.ReflectClass {
inheritedPropertyTypes(propertyTypes) {
super.inheritedPropertyTypes(propertyTypes);
for (const uses of this.uses) {
Object.assign(propertyTypes, new ReflectClass(uses).propertyTypes);
}
}
get parent() {
const parent = super.parent;
return parent
? Object.setPrototypeOf(parent, ReflectClass.prototype)
: parent;
}
get properties() {
const properties = super.properties;
for (const reflectProperty of properties) {
Object.setPrototypeOf(reflectProperty, reflect_property_1.ReflectProperty.prototype);
}
return properties;
}
get uses() {
const value = (0, uses_1.usesOf)(this.type);
Object.defineProperty(this, 'uses', { configurable: true, enumerable: false, value, writable: true });
return value;
}
}
exports.ReflectClass = ReflectClass;
//# sourceMappingURL=reflect-class.js.map