Validation package for ES6+, TypeScript and JavaScript(CommonJS and Module) ready.
- 🚀Easy to use: Easy to install in your project.
- ✅ES6+ && TS: TypeScript and ES6+ support(JS).
- 🐭Small footprint: With less then 20kb, you won't even notice.
- 📦No dependencies: You don't depend on anything else.
To use this package, install using npm
, yarn
or pnpm
📥:
# npm
npm install validatees
# yarn
yarn add validatees
# pnpm
pnpm install validatees
To check if you have the latest version, run using npx
✅:
⚠️ Must have the validatees package installed globally.
# npx
npx vci --check
// ES6+ JavaScript CommonsJs
const validatees = require("validatees");
// TypeScript || ES6+ JavaScript module
import validatees from "validatees";
Adding validation over your array before your program starts.
array
: array to validate.callback
: function to validate each item in the array, must return boolean, can only take 1 parameter(for now!).
Use validateesisTruthy
orisFalsy
for example.
strict
:boolean
, default:false
, strict mode; skip push if validation fails in 1 or more items.condition
:boolean
, default:true
, condition to validate; check if callback withcondition
is met.
register
: register listeners for given arrays.remove
: remove listeners for given arrays.
const { VListener } = require("validatees");
const vListener = new VListener();
const arr1 = [];
const arr2 = [{ a: 1 }, { b: 2 }]; // items already added will not be validated.
const customCallback = (value) => {
...
}; // create your own callback
const customCallbackWithDefaultValues = (value, checkOnThis = {id:1}) => {
...
}; // create your own callback with default values to check against
vListener.register([
{ array: arr1, callback: isTruthy, options: { strict: true } },
{ array: arr2, callback: isFalsyExtended, options: { condition: false } },
{ array: arr2, callback: [isTruthy, customCallback, customCallbackWithDefaultValues], options: { strict: true } },
]);
arr1.push(1); // should be pushed, [1]
arr2.push({ c: 3 }, { d: 4 }, null); // should not be pushed, strict mode is on, [{ a: 1 }, { b: 2 }]
arr1.push(0); // should not be pushed, [1]
arr2.push({}); // should not be pushed, [{ a: 1 }, { b: 2 }]
vListener.remove([{ array: arr1 }]);
arr1.push(0); // can now be pushed again, [1, 0]
vListener.remove([{ array: arr2 }]);
arr2.push({}); // can now be pushed again, [{ a: 1 }, { b: 2 }, {}]
To use the CLI, you can install it globally using npm
or yarn
:
# npm
npm install -g validatees
# yarn
yarn global add validatees
To use the CLI, run vci
in your terminal:
# npx
npx vci <args>
# npm & yarn
vci <args>
--help, -help, --h, -h
: show help.
vci --check --help
orvci -h
orvci --h
- Can be used after each of the following flags to show help for that flag.
- Or can be used to display all the flags and their description.
--version, -version, --v, -v
: show the current installed version.--check, -check, --c, -c
: check if the installed version is up to date with the latest version.--exit, -exit, --e, -e
: exit the process after the command execution, default:false
.--verbose, -verbose, --vb, -vb
: show more information, default:false
.--ci, -ci
: run in CI mode.--shell, -shell, --s, -s
: open the custom shell to try out the functions.
Type checking can be difficult, but with validatees
types, it's easy.
Made from 'Falsy MDN defenition'.
const { isFalsy } = require("validatees");
isFalsy(0); // true
isFalsy(1); // false
Made from 'Falsy MDN defenition'.
Also includes Array and object checking.
const { isFalsyExtended } = require("validatees");
isFalsyExtended(1); // false
isFalsyExtended(0); // true
isFalsyExtended([]); // true
isFalsyExtended({}); // true
Everything not falsy is truthy.
Made from 'Truthy MDN defenition'
const { isTruthy } = require("validatees");
isTruthy(1); // true
isTruthy(0); // false
Everything not falsy is truthy.
Made from 'Truthy MDN defenition'
Also includes Array and object checking.
const { isTruthyExtended } = require("validatees");
isTruthyExtended(1); // true
isTruthyExtended(0); // false
isTruthyExtended([]); // false
isTruthyExtended({}); // false
Check if value is null or undefined.
const { isNullish } = require("validatees");
isNullish(null); // true
isNullish(undefined); // true
isNullish(0); // false
Check if value is a string.
const { isString } = require("validatees");
isString("string"); // true
isString(1); // false
Check if value is a number.
const { isNumber } = require("validatees");
isNumber(1); // true
isNumber(Infinity); // true
isNumber("string"); // false
Check if value is a boolean.
const { isBoolean } = require("validatees");
isBoolean(true); // true
isBoolean(false); // true
isBoolean("1"); // false
Check if value is a date.
const { isDate } = require("validatees");
isDate(new Date()); // true
isDate("1"); // false
Check if value is a regular expression.
const { isRegExp } = require("validatees");
isRegExp(/test/); // true
isRegExp(new RegExp("test")); // true
isRegExp("1"); // false
Check if value is extendable for modification.
const { isExtendable } = require("validatees");
isExtendable({}); // true
isExtendable([]); // true
const prevent = {};
Object.preventExtensions(prevent);
isExtendable(obj); // false
const sealed = {};
Object.seal(sealed);
isExtendable(sealed); // false
const frozen = {};
Object.freeze(frozen);
isExtendable(frozen); // false
const frozenArray = [];
Object.freeze(frozenArray);
isExtendable(frozenArray); // false
isExtendable(1 /**anything else then object or array */); // throws error
Matchers are functions that check if a value matches a certain pattern or value.
Check if value is unique in array or object(key mostly).
const { isUnique } = require("validatees");
isUnique([1, 2, 3, 4], 1); // false
isUnique([1, 2, 3, 4], { a: 1 }); // throws error
isUnique({ a: 1, b: 2 }, { a: 1 }); // false
isUnique({ a: 1, b: 2 }, { c: 1 }); // true
Check if two values soft match with each other.
const { isSoftMatch } = require("validatees");
isSoftMatch("string", "STRING"); // true
isSoftMatch("string", "abc"); // false
isSoftMatch(1, 1.0); // true
Check if two values deep match with each other.
const { isDeepMatch } = require("validatees");
isDeepMatch({ a: 1 }, { a: 1 }); // true
isDeepMatch({ a: 1 }, { a: 2 }); // false
isDeepMatch([1, 2, { a: 3 }], [1, 2, { a: 3 }]); // true
// without the await it will return a promise holding the boolean.
await isDeepMatch(Promise.resolve(1), Promise.resolve(1)); // true
Check if value is a valid email.
const { isValidEmail } = require("validatees");
isValidEmail("test@test.test"); // true
isValidEmail(""); // false
isValidEmail("test@test"); // false
isValidEmail("test@test.t"); // false
isValidEmail(123); // throws error
Check if value is a valid password.
minLength
: number, default8
maxLength
: number, default32
numbers
: number, default1
specialChars
: number, default1
const { isValidPassword } = require("validatees");
isValidPassword("test"); // false
isValidPassword("te!1", { minLength: 4 }); // true
isValidPassword(123); // throws error
isValidPassword("t", { minLength: 1, numbers: 0, specialChars: 0 }); // true
Check if value is a valid url.
IPV4 and IPV6 are not supported.
const { isValidUrl } = require("validatees");
isValidUrl("https://google.com"); // true
isValidUrl("google.com"); // true
isValidUrl("google"); // false
isValidUrl(123); // throws error
Check if value is a valid date.
This function takes any input and will parse it to a Date, -1
and 1
will work because they are valid dates.
const { isValidDate } = require("validatees");
isValidDate(new Date()); // true
isValidDate("1"); //true: because it will be parsed to a date starting from 1970.
isValidDate(-1); //true : because it will be parsed to a date starting from 1970, moving backwards.
isValidDate("string"); // false
Found a bug🦟? or want to suggest a new feature🆕? or just want to help🆘?
Feel free to open an issue or a pull request.
Contributions are always welcome!🎉
- Fork the project here.
- Create a new branch like this:
git checkout -b feature/featureName
. - Commit your changes to your branch:
git commit -m 'Create AwesomeFeature'
⚙️. - Push your branch:
git push origin feature/featureName
. - Open a pull request on the
dev
branch here🔃.
📒Note: Make sure to add tests for your changes ✅.