typescript-checker
Version:
Powerful data validation library enabling type safety
28 lines (27 loc) • 1.59 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.EMail = exports.IsUUID = exports.Between = exports.Max = exports.Min = exports.MaxLength = exports.MinLength = void 0;
var common_1 = require("./common");
var MinLength = function (minLength) { return function (value) {
return value.length >= minLength ? [null, value] : [["expected minimum string length " + minLength]];
}; };
exports.MinLength = MinLength;
var MaxLength = function (maxLength) { return function (value) {
return value.length <= maxLength ? [null, value] : [["expected maximum string length " + maxLength]];
}; };
exports.MaxLength = MaxLength;
var Min = function (min) { return function (value) {
return value >= min ? [null, value] : [["expected number >= " + min + ", found " + value]];
}; };
exports.Min = Min;
var Max = function (max) { return function (value) {
return value <= max ? [null, value] : [["expected number <= " + max + ", found " + value]];
}; };
exports.Max = Max;
var Between = function (min, max) { return function (value) {
return value >= min && value <= max ? [null, value] : [["expected number between " + min + " and " + max + ", found " + value]];
}; };
exports.Between = Between;
exports.IsUUID = (0, common_1.TypeMatches)("UUID", /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
// opinionated validators
exports.EMail = (0, common_1.TypeMatches)("email", /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
;