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
JavaScript
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),
};