UNPKG

@bshg/validation

Version:

Validation Library for TypeScript projects

98 lines (97 loc) 3.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DateTimes = void 0; const base_1 = require("./base"); const messages_1 = require("../messages"); const msgs = () => messages_1.CurrentLocalize.datetime; const toTimestamp = (date) => new Date(date).valueOf(); class DateTimes extends base_1.TypeValidator { undefined() { return new DateTimes(); } required(options) { return this.useCostume({ error: value => value === undefined, message: msgs().required, options, }); } equals(dateTime, options) { return this.useCostume({ error: value => value && toTimestamp(value) != toTimestamp(dateTime), message: msgs().equals, options: options, args: [dateTime.toISOString()], }); } after(dateTime, options) { return this.useCostume({ error: value => value && toTimestamp(value) <= toTimestamp(dateTime), message: msgs().after, options: options, args: [dateTime.toISOString()], }); } before(dateTime, options) { return this.useCostume({ error: value => value && toTimestamp(value) >= toTimestamp(dateTime), message: msgs().before, options: options, args: [dateTime.toISOString()], }); } between(start, end, options) { return this.useCostume({ error: value => value && (toTimestamp(value) < toTimestamp(start) || toTimestamp(value) > toTimestamp(end)), message: msgs().between, options: options, args: [start.toISOString(), end.toISOString()], }); } todayOrAfter(options) { const today = new Date(); return this.useCostume({ error: value => value && toTimestamp(value) < toTimestamp(today), message: msgs().todayOrAfter, options: options, }); } todayOrBefore(options) { const today = new Date(); return this.useCostume({ error: value => value && toTimestamp(value) > toTimestamp(today), message: msgs().todayOrBefore, options: options, }); } past(options) { return this.before(new Date(), { ...options, message: (options === null || options === void 0 ? void 0 : options.message) || msgs().past }); } future(options) { return this.after(new Date(), { ...options, message: (options === null || options === void 0 ? void 0 : options.message) || msgs().future }); } weekday(options) { return this.useCostume({ error: value => value && value.getDay() % 6 === 0, // 0 or 6 represent Sunday and Saturday message: msgs().weekday, options: options, }); } weekend(options) { return this.useCostume({ error: value => value && value.getDay() % 6 !== 0, // 1-5 represent Monday to Friday message: msgs().weekend, options: options, }); } //////////////////////////////////////////// as(key, options) { return this.useCostume({ error: (value, parent) => value && toTimestamp(value) != toTimestamp(parent[key]), message: msgs().as, options: options, args: [key], }); } } exports.DateTimes = DateTimes;