model-layer
Version:
42 lines • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomClassType = void 0;
const Type_1 = require("./Type");
const utils_1 = require("../utils");
const errors_1 = require("../errors");
class CustomClassType extends Type_1.Type {
constructor(params) {
super(params);
this.CustomClass = params.constructor;
}
prepare(value, key) {
if (value == null) {
return null;
}
const CustomClass = this.CustomClass;
const className = CustomClass.name;
if (value instanceof CustomClass) {
return value;
}
const valueAsString = utils_1.invalidValuesAsString(value);
throw new errors_1.InvalidValueForCustomClassError({
className,
key,
invalidValue: valueAsString
});
}
typeAsString() {
return this.CustomClass.name;
}
toJSON() {
throw new errors_1.NoToJSONMethodError({ className: this.CustomClass.name });
}
clone(model, stack) {
throw new errors_1.NoCloneMethodError({ className: this.CustomClass.name });
}
equal() {
throw new errors_1.NoEqualMethodError({ className: this.CustomClass.name });
}
}
exports.CustomClassType = CustomClassType;
//# sourceMappingURL=CustomClassType.js.map