https://github.com/stetsd/univalid
Universal validator for server and client side
https://github.com/stetsd/univalid
client-server form javascript js univalid univalid-strategy univalid-strategy-default univalid-strategy-form universal-validator validate validation validator
Last synced: 6 months ago
JSON representation
Universal validator for server and client side
- Host: GitHub
- URL: https://github.com/stetsd/univalid
- Owner: stetsd
- Created: 2018-03-01T06:00:14.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-07-04T03:54:58.000Z (about 8 years ago)
- Last Synced: 2025-10-11T05:03:56.599Z (9 months ago)
- Topics: client-server, form, javascript, js, univalid, univalid-strategy, univalid-strategy-default, univalid-strategy-form, universal-validator, validate, validation, validator
- Language: JavaScript
- Homepage: https://stetsd.github.io/univalid-sandbox/public/
- Size: 8.79 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# univalid
Universal validation module. It may use different strategies for client validation, server validation and more.
In current moment exists two strategies:
- [univalid-strategy-default](https://github.com/StetsD/univalid-strategy-default) (use by default)
- [univalid-strategy-form](https://github.com/StetsD/univalid-strategy-form)
## Install
```sh
npm i univalid
```
## Base usage
```js
const Univalid = require('univalid');
const univalid = Univalid();
univalid.check([
{
name: 'login',
val: 'User01',
type: 'required'
},
{
name: 'email',
val: 'test@test.ts',
type: 'email'
},
{
name: 'password',
val: undefined,
type: 'password'
}
]);
console.log(univalid.getCommonState, univalid.getState);
univalid.clearState();
```
## API
### check(pack)
Validating the pack
**pack** - Type `object`
Structure of pack must be strict.
- packItem.name - Type `string` - (required) - filed name
- packItem.type - Type `string` - (required) - by default has: 'required', 'email', 'password', 'equal'
- packItem.val - Type `string` - (required) value of field
- packItem.filter - Type `boolean` - filter type (see more [univalid-strategy](https://github.com/StetsD/univalid-strategy))
- packItem.msg - Type `boolean` - message config. See in example below
name, val, type - required fields
```js
//name, val, type - required fields
univalid.check(
[
{
name: 'username',
val: 'Uriy',
type: 'required',
filter: 'oL',
msg: {
empty: 'You shall not pass',
invalid: 'Validation error',
filter: 'Filter error',
success: 'All right'
}
},
{
name: 'email',
val: 'Uriy@mzf.com',
type: 'email',
filter: val => {
// Your custom filter
console.log('Filter', val);
// if FilterHandler is Ok then "return true"
return true;
// else return false
},
msg: {
empty: 'You shall not pass',
invalid: 'Bad email',
filter: 'Only lat/numbers/specials symbols',
success: 'All right'
}
}
]
);
```
### setStrategy(strategy)
Set new Strategy of validation
**strategy** - Type `object` - instance of strategy
```js
const UnivalidStrategyForm = require('univalid-strategy-form');
univalid.setStrategy(
UnivalidStrategyForm({
core: univalid, /* required prop */
$form: '.js-reg-form' /* required prop */
})
);
```
### setValidHandler(pack)
Set new Validation Handler
**pack** - Type `object`
New validationHandler must return true\false how result validation of field
```js
univalid.setValidHandler({
'newValidator': val => {
console.log(val, 'Valid');
return true;
}
});
```
### setMsgConfig(config)
Set new Default Message config
If in item of validation pack not define 'msg' field, will be message from msgConfig be default
**config** - Type `object`
```js
univalid.setMsgConfig({
empty: 'NEW EMPTY ERROR',
invalid: 'NEW INVALID',
filter: "NEW FILTER",
success: 'NEW SUCCESS'
});
```
### toggleDefaultMsgConfig()
Toggle to default and common configuration of messages.
This configuration is common for all univalid modules.
```js
univalid.toggleDefaultMsgConfig(); // default msgConfig
univalid.toggleDefaultMsgConfig(); // msgConfig of instance
```
### setDefaultMsgConfig(config)
Set new Common Message config
**config** - Type `object`
```js
univalid.setMsgConfig({
empty: 'NEW COMMON EMPTY ERROR',
invalid: 'NEW COMMON INVALID',
filter: "NEW COMMON FILTER",
success: 'NEW COMMON SUCCESS'
});
//or
univalid.setMsgConfig({
empty: 'NEW COMMON EMPTY ERROR'
});
```
### set(option, val)
Set new prop to your current strategy of validation
**option** - Type `string`
```js
univalid.set('core', univalid);
```
### get(prop, args)
Get prop your current strategy or call the method your strategy.
**prop** - Type `string`
**args** - if it a method of strategy
```js
//univalid-strategy-form example
univalid.get('addEvent', {
newEvent(){document.addEventListener('click', ()=>{
console.log('Click in document!');
})}
});
univalid.get('clsConfig');
```
### clearState()
Clear your current validation state
### getState()
Get last validation state
### getStrategy()
Get current Strategy of validation
### getValidHandler()
Get current validation handler
### getCommonState()
Get Common state of validation (true\false)
## EVENTS
You can subscribe on univalid events (univalid extends EventEmitter)
```js
univalid.on('start:valid', (args) => {
console.log('Check!');
});
```
**Table of events**
| Event | Description |
|:------:|:-----------:|
|start:valid|Start validation pack|
|end:valid|End validation pack|
|start:valid:field|Start validation field|
|end:valid:field|End validation field|
|change:strategy|Change strategy event|
|set:new-ValidationHandler|Set new ValidationHandler event|
|change:msg-config|Change message config event|
|clear:state|Clear state of last validation event|
|error|Error event|
## License
ISC ©