An easy-to-compose functional validation system for javascript developers
It allows to easily create custom and reusable validators from the pre-existing ones by using a functional approach and the composition principle.
- Full functional
- Strict types validation based on
Object.prototype.toString
instead oftypeof
to avoid unexpected behaviours - Tiny and lightweight
- Extremely modular
- Concise API
You can install it by using NPM:
npm install deep-waters
Deep Waters exports its modules as CommonJS modules, so that each one can be easily imported individually, as the following:
const compose = require('deep-waters/compose');
const minLength = require('deep-waters/minLength');
const ofUniqueItems = require('deep-waters/ofUniqueItems');
const arrayValidator = compose(minLength(3), ofUniqueItems);
arrayValidator([1,2,3,4]); // => true;
Alternatively, it's possible to import all the modules at once with the same result.
const DW = require('deep-waters');
const arrayValidator = DW.compose(DW.minLength(3), DW.ofUniqueItems);
arrayValidator([1,2,3,4]); // => true;
Deep Waters is released under the MIT license & supports modern environments.
Contributions are very welcome and wanted.
To submit your custom hook, please make sure your read our CONTRIBUTING guidelines.
Before submitting a new merge request, please make sure:
- You have updated the package.json version and reported your changes into the CHANGELOG file
- make sure you run
npm test
before submitting your merge request. - In case you're creating a new validator please make sure it is well documented and tested
Icon made by Freepik from www.freepik.com