@bshg/validation
Version:
Validation Library for TypeScript projects
98 lines (97 loc) • 3.44 kB
JavaScript
;
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;