ts-cast
Version:
Runtime typechecking
15 lines (14 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.jsDateTimeStamp = exports.unixDateTimeStamp = exports.isoDate = void 0;
var engine_1 = require("../engine");
var parseDate = function (typeName, value, context, reportError) {
var date = new Date(value);
if (Number.isNaN(date.getTime())) {
return reportError("".concat(typeName, " is expected").concat(context ? " in ".concat(context) : '', " but \"").concat(value, "\" received."), context);
}
return date;
};
exports.isoDate = (0, engine_1.createCaster)('ISODate', function (value) { return typeof value === 'string' && value !== ''; }, function (value, context, reportError) { return parseDate('ISODate', value, context, reportError); });
exports.unixDateTimeStamp = (0, engine_1.createCaster)('UnixDateTimeStamp', function (value) { return typeof value === 'number'; }, function (value, context, reportError) { return parseDate('UnixDateTimeStamp', value * 1000, context, reportError); });
exports.jsDateTimeStamp = (0, engine_1.createCaster)('JSDateTimeStamp', function (value) { return typeof value === 'number'; }, function (value, context, reportError) { return parseDate('JSDateTimeStamp', value, context, reportError); });