UNPKG

@dazejs/framework

Version:

Daze.js - A powerful web framework for Node.js

534 lines (460 loc) 14.4 kB
/** * Copyright (c) 2020 Chan Zewail * * This software is released under the MIT License. * https: //opensource.org/licenses/MIT */ import * as validators from '../../validate/validators'; import { validatorFactory } from './factory'; // MARK: Custom export const Passed = function (options?: any) { return validatorFactory(validators.passed, [], { message: '$field must be passed!', ...options, }); }; // MARK: Common export const Accepted = function (options?: any) { return validatorFactory(validators.accepted, [], { message: '$field must be yes,on or 1', ...options, }); }; export const Is = function (comparison: any, options?: any) { return validatorFactory(validators.is, [comparison], { message: '$field must is $1', ...options, }); }; export const Required = function (options?: any) { return validatorFactory(validators.required, [], { message: '$feild must not be undefined', ...options, }); }; export const Equals = function (comparison: any, options?: any) { return validatorFactory(validators.equals, [comparison], { message: '$field must be equal to $1', ...options, }); }; export const NotEquals = function (comparison: any, options?: any) { return validatorFactory(validators.notEquals, [comparison], { message: '$field shoud not equal to $1', ...options, }); }; export const IsEmpty = function (options?: any) { return validatorFactory(validators.isEmpty, [], { message: '$field must be empty', ...options, }); }; export const IsNotEmpty = function (options?: any) { return validatorFactory(validators.isNotEmpty, [], { message: '$field should not be empty', ...options, }); }; // MARK: Number export const IsDivisibleBy = function (num: any, options?: any) { return validatorFactory(validators.isDivisibleBy, [num], { message: '$field must be divisible by $1', ...options, }); }; export const IsPositive = function (options?: any) { return validatorFactory(validators.isPositive, [], { message: '$field must be a positive number', ...options, }); }; export const IsNegative = function (options?: any) { return validatorFactory(validators.isNegative, [], { message: '$field must be a negative number', ...options, }); }; export const Min = function (min: any, options?: any) { return validatorFactory(validators.min, [min], { message: '$field must not be less than $1', ...options, }); }; export const Max = function (max: any, options?: any) { return validatorFactory(validators.max, [max], { message: '$field must not be greater than $1', ...options, }); }; // MARK: Date export const AfterDate = function (date: any, options?: any) { return validatorFactory(validators.afterDate, [date], { message: '$field date must not be before than $1', ...options, }); }; export const BeforeDate = function (date: any, options?: any) { return validatorFactory(validators.beforeDate, [date], { message: '$field date must not be after than $1', ...options, }); }; // MARK: Type export const IsBoolean = function (options?: any) { return validatorFactory(validators.isBoolean, [], { message: '$field must be a boolean value', ...options, }); }; export const IsDate = function (options?: any) { return validatorFactory(validators.isDate, [], { message: '$field must be a date value', ...options, }); }; export const IsString = function (options?: any) { return validatorFactory(validators.isString, [], { message: '$field must be a string value', ...options, }); }; export const IsNumber = function (options?: any) { return validatorFactory(validators.isNumber, [], { message: '$field must be a number value', ...options, }); }; export const IsArray = function (options?: any) { return validatorFactory(validators.isArray, [], { message: '$field must be a array value', ...options, }); }; export const IsError = function (options?: any) { return validatorFactory(validators.isError, [], { message: '$field must be an error', ...options, }); }; export const IsFunction = function (options?: any) { return validatorFactory(validators.isFunction, [], { message: '$field must be a function', ...options, }); }; export const IsBuffer = function (options?: any) { return validatorFactory(validators.isBuffer, [], { message: '$field must be a buffer', ...options, }); }; export const IsObject = function (options?: any) { return validatorFactory(validators.isObject, [], { message: '$field must be an object value', ...options, }); }; export const IsRegExp = function (options?: any) { return validatorFactory(validators.isRegExp, [], { message: '$field must be a regexp', ...options, }); }; export const IsSymbol = function (options?: any) { return validatorFactory(validators.isSymbol, [], { message: '$field must be a symbol value', ...options, }); }; export const IsNullOrUndefined = function (options?: any) { return validatorFactory(validators.isNullOrUndefined, [], { message: '$field must be null or undefined', ...options, }); }; export const IsNull = function (options?: any) { return validatorFactory(validators.isNull, [], { message: '$field must be null', ...options, }); }; export const IsUndefined = function (options?: any) { return validatorFactory(validators.isUndefined, [], { message: '$field must be undefined', ...options, }); }; // MARK: String Type export const IsDateString = function (options?: any) { return validatorFactory(validators.isDateString, [], { message: '$field must be a date string value', ...options, }); }; export const IsBooleanString = function (options?: any) { return validatorFactory(validators.isBooleanString, [], { message: '$field must be a boolean string value', ...options, }); }; export const IsNumberString = function (options?: any) { const _options = options ? [options] : []; return validatorFactory(validators.isNumberString, _options, { message: '$field must be a number string value', ...options, }); }; // MARK: String export const Contains = function (seed: any, options?: any) { return validatorFactory(validators.contains, [seed], { message: '$field must contain a $1 string', ...options, }); }; export const NotContains = function (seed: any, options?: any) { return validatorFactory(validators.notContains, [seed], { message: '$field should not contain a $1 string', ...options, }); }; export const IsAlpha = function (locale?: any, options?: any) { const defaultMessage = '$field must contain only letters (a-zA-Z)'; if (locale && typeof locale === 'object') { return validatorFactory(validators.isAlpha, [locale.locale], { message: defaultMessage, ...locale, }); } return validatorFactory(validators.isAlpha, [locale], { message: defaultMessage, ...options, }); }; export const IsAlphanumeric = function (locale?: any, options?: any) { const defaultMessage = '$field must contain only letters and numbers'; if (locale && typeof locale === 'object') { return validatorFactory(validators.isAlphanumeric, [locale.locale], { message: defaultMessage, ...locale, }); } return validatorFactory(validators.isAlphanumeric, [locale], { message: defaultMessage, ...options, }); }; export const IsAscii = function (options?: any) { return validatorFactory(validators.isAscii, [], { message: '$field must contain only ASCII characters', ...options, }); }; export const IsBase64 = function (options?: any) { return validatorFactory(validators.isBase64, [], { message: '$field must be base64 encoded', ...options, }); }; export const IsByteLength = function (min: any, max: any, options?: any) { return validatorFactory(validators.isByteLength, [min, max], { message: '$field\'s byte length must fall into($1, $2) range', ...options, }); }; export const IsCreditCard = function (options?: any) { return validatorFactory(validators.isCreditCard, [], { message: '$field must be a credit card', ...options, }); }; export const IsCurrency = function (options?: any) { const _options = options ? [options] : []; return validatorFactory(validators.isCurrency, _options, { message: '$field must be a currency', ...options, }); }; export const IsEmail = function (options?: any) { const _options = options ? [options] : []; return validatorFactory(validators.isEmail, _options, { message: '$field must be an email', ...options, }); }; export const IsFQDN = function (options?: any) { const _options = options ? [options] : []; return validatorFactory(validators.isFQDN, _options, { message: '$field must be a valid domain name', ...options, }); }; export const IsFullWidth = function (options?: any) { return validatorFactory(validators.isFullWidth, [], { message: '$field must contain a full-width characters', ...options, }); }; export const IsHalfWidth = function (options?: any) { return validatorFactory(validators.isHalfWidth, [], { message: '$field must contain a half-width characters', ...options, }); }; export const IsHexColor = function (options?: any) { return validatorFactory(validators.isHexColor, [], { message: '$field must be a hex color', ...options, }); }; export const IsHexadecimal = function (options?: any) { return validatorFactory(validators.isHexadecimal, [], { message: '$field must be a hexadecimal number', ...options, }); }; export const IsIP = function (version?: any, options?: any) { const defaultMessage = '$field must be an ip address'; if (version && typeof version === 'object') { return validatorFactory(validators.isIP, [version.version], { message: defaultMessage, ...version, }); } return validatorFactory(validators.isIP, [version], { message: defaultMessage, ...options, }); }; export const IsISBN = function (version?: any, options?: any) { const defaultMessage = '$field must be an ISBN'; if (version && typeof version === 'object') { return validatorFactory(validators.isISBN, [version.version], { message: defaultMessage, ...version, }); } return validatorFactory(validators.isISBN, [version], { message: defaultMessage, ...options, }); }; export const IsISSN = function (options?: any) { const _options = options ? [options] : []; return validatorFactory(validators.isISSN, _options, { message: '$field must be an ISSN', ...options, }); }; export const IsISIN = function (options?: any) { return validatorFactory(validators.isISIN, [], { message: '$field must be an ISIN (stock/security identifier)', ...options, }); }; export const IsISO8601 = function (options?: any) { return validatorFactory(validators.isISO8601, [], { message: '$field must be a valid ISO 8601 date string', ...options, }); }; export const IsJSON = function (options?: any) { return validatorFactory(validators.isJSON, [], { message: '$field must be a json string', ...options, }); }; export const IsLowercase = function (options?: any) { return validatorFactory(validators.isLowercase, [], { message: '$field must be a lowercase string', ...options, }); }; export const IsMobilePhone = function (locale?: any, options?: any) { if (locale && typeof locale === 'object') { return validatorFactory(validators.isMobilePhone, [locale.locale, locale], locale); } return validatorFactory(validators.isMobilePhone, [locale, options], { message: '$field must be a mobile phone number', ...options, }); }; export const IsMongoId = function (options?: any) { return validatorFactory(validators.isMongoId, [], { message: '$field must be a mongodb id', ...options, }); }; export const IsMultibyte = function (options?: any) { return validatorFactory(validators.isMultibyte, [], { message: '$field must contain one or more multibyte chars', ...options, }); }; export const IsSurrogatePair = function (options?: any) { return validatorFactory(validators.isSurrogatePair, [], { message: '$field must contain any surrogate pairs chars', ...options, }); }; export const IsURL = function (options?: any) { const _options = options ? [options] : []; return validatorFactory(validators.isURL, _options, { message: '$field must be an URL address', ...options, }); }; export const IsUUID = function (version?: any, options?: any) { const defaultMessage = '$field must be an UUID'; if (version && typeof version === 'object') { return validatorFactory(validators.isUUID, [version.version], { message: defaultMessage, ...version, }); } return validatorFactory(validators.isUUID, [version], { message: defaultMessage, ...options, }); }; export const IsUppercase = function (options?: any) { return validatorFactory(validators.isUppercase, [], { message: '$field must be an uppercase string', ...options, }); }; export const Length = function (min: any, max: any, options?: any) { return validatorFactory(validators.length, [min, max], { message: '$field must be between $1 and $2', ...options, }); }; export const MinLength = function (min: any, options?: any) { return validatorFactory(validators.minLength, [min], { message: '$field must not be shorter than $1', ...options, }); }; export const MaxLength = function (max: any, options?: any) { return validatorFactory(validators.maxLength, [max], { message: '$field must not be longer than $1', ...options, }); }; export const Matches = function (pattern: any, modifiers?: any, options?: any) { const defaultMessage = '$field must match $1 regular expression'; if (modifiers && typeof modifiers === 'object') { return validatorFactory( validators.matches, [pattern, modifiers.modifiers, modifiers], { message: defaultMessage, ...modifiers, }, ); } return validatorFactory(validators.matches, [pattern, modifiers, options], { message: defaultMessage, ...options, }); };