UNPKG

model-layer

Version:
47 lines 1.44 kB
"use strict"; 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