UNPKG

@configurator/ravendb

Version:
55 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DateUtil = void 0; const moment = require("moment"); const Exceptions_1 = require("../Exceptions"); class DateUtil { constructor(opts) { this.opts = opts; } static timestamp() { return moment().unix(); } static timestampMs() { return moment().valueOf(); } static zeroDate() { return moment([1, 1, 1]).toDate(); } parse(dateString) { if (!dateString) { return null; } let parsed; if (this.opts.useUtcDates || this.opts.withTimezone || dateString.endsWith("Z")) { parsed = moment.parseZone(dateString, DateUtil.DEFAULT_DATE_TZ_FORMAT); } else { parsed = moment(dateString, DateUtil.DEFAULT_DATE_FORMAT); } if (!parsed.isValid()) { (0, Exceptions_1.throwError)("InvalidArgumentException", `Could not parse date string '${dateString}'.`); } return parsed.toDate(); } stringify(date) { const m = moment(date); if (this.opts.useUtcDates) { m.utc(); } const format = this.opts.withTimezone ? DateUtil.DEFAULT_DATE_TZ_FORMAT : DateUtil.DEFAULT_DATE_FORMAT; const result = m.format(format); if (this.opts.useUtcDates && !this.opts.withTimezone) { return result + "Z"; } return result; } } exports.DateUtil = DateUtil; DateUtil.DEFAULT_DATE_FORMAT = "YYYY-MM-DDTHH:mm:ss.SSS0000"; DateUtil.DEFAULT_DATE_TZ_FORMAT = "YYYY-MM-DDTHH:mm:ss.SSS0000Z"; DateUtil.default = new DateUtil({}); DateUtil.utc = new DateUtil({ useUtcDates: true }); //# sourceMappingURL=DateUtil.js.map