model-layer
Version:
39 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BooleanType = void 0;
const Type_1 = require("./Type");
const utils_1 = require("../utils");
const errors_1 = require("../errors");
class BooleanType extends Type_1.Type {
constructor(params) {
super(params);
this.nullAsFalse = !!params.nullAsFalse;
this.falseAsNull = !!params.falseAsNull;
if (params.nullAsFalse && params.falseAsNull) {
throw new errors_1.ConflictNullAndFalseParameterError({});
}
}
prepare(value, key) {
if (value == null) {
if (this.nullAsFalse) {
return false;
}
return null;
}
if (typeof value !== "boolean") {
const valueAsString = utils_1.invalidValuesAsString(value);
throw new errors_1.InvalidBooleanError({
key,
invalidValue: valueAsString
});
}
if (this.falseAsNull) {
if (!value) {
value = null;
}
}
return value;
}
}
exports.BooleanType = BooleanType;
//# sourceMappingURL=BooleanType.js.map