@zulus/request-validator
v1.1.6
Published
Validator middleware based on Joi for Koa server
Downloads
2
Maintainers
Readme
config
Validator for configuration files, based on Joi, loads configuration, based on process.env.NODE_ENV
property
npm i @zulus/request-validator
Structure
USAGE
const { middleware }=require('@zulus/request-validator')
const Joi = require('Joi');
const schema = Joi.object({
//...
});
router.get('/route', middleware(schema), handler);
API
middleware (shema, options)
Returns Koa middleware for validation request object, using Joi schema
schema
- valid Joi schema for validation[options]
- configuration options for Joi.validate method call[allowUnknown]
- allows object to contain unknown keys which are ignored[skipFunctions]
- event is not supposed to have functions[stripUnknown]
- remove unknown elements from objects and arrays, if you need this behavior use .unknown()[presence]
- sets the default presence requirements: 'optional', 'required', or 'forbidden'[abortEarly]
- when true, stops validation on the first error, otherwise returns all the errors found. Defaults to true
validate (schema, [options],[errorConverter])
Returns result object:
{
ok: boolean, // is object passed validation
errors: {
path:string // error description
},
value: object // validated values
}
schema
- valid Joi schema for validation[options]
- configuration options for Joi.validate method call[allowUnknown]
- allows object to contain unknown keys which are ignored[skipFunctions]
- event is not supposed to have functions[stripUnknown]
- remove unknown elements from objects and arrays, if you need this behavior use .unknown()[presence]
- sets the default presence requirements: 'optional', 'required', or 'forbidden'[abortEarly]
- when true, stops validation on the first error, otherwise returns all the errors found. Defaults to true
[errorConverter]
- function for converting validation error to an API error
Contributing
To start contributing do
git clone [email protected]:ZulusK/nodejs-request-validator.git
git checkout develop
git checkout -b <your-branch-name>
The project is developed in accordance with the GitFlow methodology.
What it means
- All work you should do in your own local branch (naming is important, look below), then make pull request to develop branch
- Your local branch should not have conflicts with repository develop branch. To avoid it, before push to repository, do:
git pull origin develop # resolve all conflicts, if they exists git add --all git commit -m "fix conflicts" git push origin <your-branch-name>
- We use next naming of branches:
| branch template | description |
| ------------------------------------ | ----------------------------------------------------------- |
| feat/<short-feature-name>
| new feature, ex. feat-add-logger
|
| fix/<short-fix-name>
| fix of existing feature, ex. fix-logger
|
| refactor/<short-scope-description>
| refactor, linting, style changes, ex. style-update-eslint
|
| test/<short-scope-descriptiopn>
| tests, ex. test-db-connections
|
| docs/<short-scope-descriptiopn>
| documentation, ex. test-db-connections
|
Important, before push
We use eslint with this rules to lint code, before making pull request, lint your code:
npm run lint
Before making pull request, run tests
npm run test