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 git@gitlab.com: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