model-layer
Version:
47 lines • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DateType = void 0;
const Type_1 = require("./Type");
const utils_1 = require("../utils");
const errors_1 = require("../errors");
class DateType extends Type_1.Type {
prepare(originalValue, key) {
if (originalValue == null) {
return null;
}
let value = originalValue;
// iso date string
if (typeof value === "string") {
// Date.parse returns unix timestamp
value = Date.parse(value);
}
// unix timestamp
if (typeof value === "number") {
value = new Date(value);
}
const isInvalidDate = (!(value instanceof Date) ||
value.toString() === "Invalid Date");
if (isInvalidDate) {
const valueAsString = utils_1.invalidValuesAsString(originalValue);
throw new errors_1.InvalidDateError({
key,
invalidValue: valueAsString
});
}
return value;
}
equal(selfValue, anotherValue) {
if (selfValue == null) {
return anotherValue === null;
}
if (!(anotherValue instanceof Date)) {
return false;
}
return +selfValue === +anotherValue;
}
toJSON(date) {
return date.toISOString();
}
}
exports.DateType = DateType;
//# sourceMappingURL=DateType.js.map