UNPKG

@e-group/utils

Version:

eGroup team utils that share across projects.

78 lines (58 loc) 1.94 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = factory; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _dateFns = require("date-fns"); var _isLength = _interopRequireDefault(require("validator/lib/isLength")); var _isEmail = _interopRequireDefault(require("validator/lib/isEmail")); var _isMobilePhone = _interopRequireDefault(require("validator/lib/isMobilePhone")); class Validator { constructor(errors, name, value) { (0, _defineProperty2.default)(this, "errors", void 0); (0, _defineProperty2.default)(this, "name", void 0); (0, _defineProperty2.default)(this, "value", void 0); this.errors = errors; this.name = name; this.value = value; } isRequired(message) { if (!this.value) { this.errors[this.name] = message; } return this; } isMobilePhone(message, locale) { if (this.value && typeof this.value === 'string' && !(0, _isMobilePhone.default)(this.value, locale)) { this.errors[this.name] = message; } return this; } isEmail(message) { if (this.value && typeof this.value === 'string' && !(0, _isEmail.default)(this.value)) { this.errors[this.name] = message; } return this; } lengthLimit(max, message) { if (this.value && !(0, _isLength.default)(String(this.value), { min: 0, max })) { this.errors[this.name] = message; } return this; } isDateBefore(date, message) { if (this.value && typeof this.value !== 'string' && (0, _dateFns.isValid)(this.value) && (0, _dateFns.isBefore)(this.value, date)) { this.errors[this.name] = message; } return this; } } function factory(errors, name, value) { const validator = new Validator(errors, name, value); return validator; }