legitimate

0.3.0 • Public • Published

legitimate

npm docs build codecov dependencies version

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

Package Sidebar

Install

npm i legitimate

Weekly Downloads

1

Version

0.3.0

License

Apache-2.0

Last publish

Collaborators

  • jacopkane