Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/trapcodeio/abolish
A smart blazing fast javascript variable validator.
https://github.com/trapcodeio/abolish
abolish
Last synced: 14 days ago
JSON representation
A smart blazing fast javascript variable validator.
- Host: GitHub
- URL: https://github.com/trapcodeio/abolish
- Owner: trapcodeio
- Created: 2020-03-17T06:13:38.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-09-16T09:12:38.000Z (3 months ago)
- Last Synced: 2024-11-29T08:42:13.480Z (14 days ago)
- Topics: abolish
- Language: TypeScript
- Homepage: https://abolish.trapcode.io
- Size: 433 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
- awesome-blazingly-fast - abolish - A smart blazing fast javascript variable validator. (TypeScript)
README
# Abolish
A Javascript object validator for custom validations
Documentation: [Abolish Documentation](https://abolish.trapcode.io)
Playground: [Abolish Playground](https://abolish-playground.trapcode.io)### Basic Example
```javascript
const {Abolish} = require('abolish');const abolish = new Abolish();
// Use abolish email validator
const EmailValidator = require('abolish/validators/string/email');
abolish.addValidator(EmailValidator);// Add Custom Validtor
abolish.addValidator({
name: 'addProtocol',
validator: (url, option, {modifier}) => {
// Check if url does not have required protocol
if (url.substring(0, option.length) !== option) {
// Add protocol
modifier.setThis(`${option}://${url}`)
}
return true
}
});// Object to validate
const form = {
email: '[email protected]',
username: 'john_doe',
age: 18,
url: 'wildstream.ng'
};const [error, validated] = abolish.validate(form, {
$: 'required|typeOf:string', // $ or '*' is considered as wildcard
email: 'isEmail',
username: '*',
age: 'typeOf:number|max:20',
url: 'addProtocol:http'
});console.log({form, validation: {error, validated}});
```#### Result
```
{
form: {
email: '[email protected]',
username: 'john_doe',
age: 18,
url: 'wildstream.ng'
},
validation: {
error: null,
validated: {
email: '[email protected]',
username: 'john_doe',
age: 18,
url: 'http://wildstream.ng'
}
}
}
```