Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/karl-sjogren/request-validatorjs
A js object validator
https://github.com/karl-sjogren/request-validatorjs
Last synced: 5 days ago
JSON representation
A js object validator
- Host: GitHub
- URL: https://github.com/karl-sjogren/request-validatorjs
- Owner: karl-sjogren
- License: isc
- Created: 2020-06-29T11:13:29.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T21:41:25.000Z (almost 2 years ago)
- Last Synced: 2024-04-14T07:26:37.661Z (7 months ago)
- Size: 230 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.MD
- License: LICENSE.txt
Awesome Lists containing this project
README
# Request Validator
A Node.js module for validating any kind of js dictionary.
Inspired by the Request Validation feature in [laravel](https://laravel.com/docs/5.8/validation).
## Installation
```sh
npm install request-validator-js
```
## Usage
For more in depth on how the package works check out the [docs.](https://eliasrenman.github.io/request-validatorjs/)Some simple examples of usages of this package.
### Example payload
A example data payload looks like this
```JSON
{
"token": "",
"someValue": "This has a value",
"aInt": 0,
"needsToBeString": 255
}
```### Javascript
```javascript
var RequestValidator = require('request-validator-js');
var request = new RequestValidator.RequestValidator();
let errors = request.validate(data,{
'token': 'required|max:255',
'needsToBeString': 'required|string',
'doesNotExistInData': 'required',
});
```
### TypeScript
```typescript
import { RequestValidator } from 'request-validator-js';
let request = new RequestValidator();
let errors = request.validate(data,{
'token': 'required|max:255',
});
```
Example output of the errors produces in the javascript example.
```json
{
"errors": {
"aInt": [
"token is required!"
],
"someValue": [
"someValue is required to be a minimum length of 15"
]
}
}
```
### Using custom error messagesA example for javascript
```javascript
var data = {
"name": "example",};
var custom_errors = {
//Custom error message for the rule called "username"
"username": "field :attribute with the value :value is not a valid username!"
};var validation = {
/* This will validate that the field name exists and that it is not empty and that it is a valid username */
"name": "required|username",
}// In this example no errors will be present since example is a vaild username.
var response = request.validate(data, validation, custom_errors);
```
Above example with the data field "name" being a invalid username,
example: "invalid username" contains spaces which is not allowed.
The output would looks like this.
```JSON
{
"errors": {
"name": [
"field name with the value invalid username is not a valid username!"
]
}
}
```
## Rules
### Available rules
For a list of currently available rule see [RULES](https://github.com/eliasrenman/request-validatorjs/blob/master/RULES.md)
A quick reference for the rules are:
* required
* min:int
* max:int
* boolean
* string
* url
* json
* username### Writing custom rules
For writing custom rules there a simple placeholder values that should be place in the errorMessage string. the available placeholders:
:attribute will be replaced with the fields name.
:param will be replaced with the parameter in the rule, for example max:3, param = 3.
:value will be replaced by the actual input value of the field.
## Test
Running the mocha unit tests are done by running the following command:
```sh
npm run test
```