legitimate
v0.3.0
Published
Functional, modular and async validation π
Downloads
1
Maintainers
Readme
legitimate
Functional, modular and async validation π
Works fine on browser and node.js, framework agnostic.
Docs
Demo
Installation
npm install --save legitimate
or
yarn add legitimate
Usage
Simply:
import { Legitimate, validators } from 'legitimate';
const legitimate = new Legitimate();
legitimate
.setRules('propToValidate', validators.notEmpty)
.update('propToValidate', 'value')
.validate('propToValidate') //validates single prop
.then(response => response.map(console.log))
.catch(response => response.map(console.warn));
Some customization:
import { Legitimate, validators, locales } from 'legitimate';
const legitimate = new Legitimate({
...locales,
TOO_SHORT : (value, min) => `Custom message : ${min}`;
}, {
password : null
});
const passwordRules = [
password : [
validators.isText,
validators.notEmpty,
(...params) => validators.min(...params, 8),
(...params) => validators.max(...params, 16),
(...params) => validators.minLowerCaseChars(...params, 1),
(...params) => validators.minUpperCaseChars(...params, 1)
]
];
legitimate
.setRules('username', validations.notEmpty, validations.alphanumeric)
.setRules('password', ...passwordRules)
.update('username', 'jacopkane')
.update('password', 'secretPass')
.isLegit() //validates all the state at once
.then(response => response.map(console.log)) //will return results for all the rules
.catch(response => response.map(console.warn));
ES5 & CommonJS
If you are old-school, it's fine with ES5 as well.
var Legitimate = require('legitimate').Legitimate;
var legitimate = new Legitimate();
Development
start demo
npm start
or
yarn start
build
npm run build
or
yarn build
test
npm test
or
npm test -- --coverage
or
yarn test
version & publish
For versioning you can use npm version command with semver
It will also
- test
- build
- generate docs
- stage
- commit
- push the tags to tracked remote repository
- push the demo
- if CI will pass also get deployed to NPM
npm version patch -f -m "Backwards-compatible bug fixes";
or
npm version minor -f -m "Backwards-compatible new functionality";
or
yarn version major -f -m "Made incompatible API changes";
TODO
- Implement / experiment observable approach
- Simplify demo
- Add more built-in validators maybe by using other proven libraries