UNPKG

appwrite-utils-cli

Version:

Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.

43 lines (42 loc) 2.69 kB
import { isNumber, isString, isBoolean, isArray, isPlainObject, isNull, isUndefined, isDate, isEmpty, isInteger, isArrayLike, isArrayLikeObject, isFunction, isLength, isMap, isSet, isRegExp, isSymbol, isObjectLike, isSafeInteger, isTypedArray, isEqual, isMatch, has, get, } from "es-toolkit/compat"; export const validationRules = { isNumber: (value) => isNumber(value), isString: (value) => isString(value), isBoolean: (value) => isBoolean(value), isArray: (value) => isArray(value), isObject: (value) => isPlainObject(value) && !isArray(value) && !isFunction(value), isNull: (value) => isNull(value), isValidEmail: (value) => value.match(/^[\w\-\.]+@([\w-]+\.)+[\w-]{2,}$/) !== null, isValidPhone: (value) => value.match(/^[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$/im) !== null, isValidPassword: (value) => value.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/) !== null, isValidUrl: (value) => value.match(/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/) !== null, isValidHex: (value) => value.match(/^#([a-f0-9]{6}|[a-f0-9]{3})$/i) !== null, isValidHexColor: (value) => value.match(/^#([a-f0-9]{6}|[a-f0-9]{3})$/i) !== null, isValidHexAlpha: (value) => value.match(/^#([a-f0-9]{8}|[a-f0-9]{4})$/i) !== null, isValidDate: (value) => value.match(/^\d{4}-\d{2}-\d{2}$/) !== null, isValidTime: (value) => value.match(/^\d{2}:\d{2}(:\d{2})?$/) !== null, isNullish: (value) => isNull(value) || isUndefined(value), isUndefined: (value) => isUndefined(value), isDefined: (value) => !isUndefined(value) && !isNull(value) && !isEmpty(value), isDate: (value) => isDate(value), isEmpty: (value) => isEmpty(value), isInteger: (value) => isInteger(value), isFloat: (value) => isNumber(value) && !isInteger(value), // Note: Works for double precision numbers isArrayLike: (value) => isArrayLike(value), isArrayLikeObject: (value) => isArrayLikeObject(value), isFunction: (value) => isFunction(value), isLength: (value) => isLength(value), isMap: (value) => isMap(value), isSet: (value) => isSet(value), isRegExp: (value) => isRegExp(value), isSymbol: (value) => isSymbol(value), isObjectLike: (value) => isObjectLike(value), isPlainObject: (value) => isPlainObject(value), isSafeInteger: (value) => isSafeInteger(value), isTypedArray: (value) => isTypedArray(value), isEqual: (value, other) => isEqual(value, other), isMatch: (object, source) => isMatch(object, source), has: (object, path) => has(object, path), get: (object, path, defaultValue) => get(object, path, defaultValue), };