graphql-validation
graphql-validation
is a GraphQL middleware that wraps validator.js validator functions.
Table of Contents
Features
- Based on validator.js
- Validate both args & input types
- Easy to use
- Easy to modularizing
- Pure javascript
Install
yarn add graphql-validation
or
npm i --save graphql-validation
Usage
Basic
const validator validate = ; // Import module const resolver = Mutation: createPost: ;
Input: id: 'hellomongo' title: '' content: 'Hi!' ; // console.log(context.validationErrors);Output: param: 'id' msg: 'MongoId is invalid' param: 'title' msg: 'Title is invalid' param: 'title' msg: 'Title must contains \"hi\"' param: 'title' msg: 'Title is required' param: 'content' msg: 'Invalid value' ;
Validate Input types
const validator validate = ; // Import module const resolver = Mutation: createPost: ;
Input: data: title: '' content: 'Hi!' ; // console.log(context.validationErrors);Output: param: 'title' msg: 'Title is required' param: 'content' msg: 'Invalid value' ;
To get started with
graphql-validation
, you can refer to this example.
API
validator(rules: array, controller: function)
Args | Type | Default | Description |
---|---|---|---|
rules |
Array |
undefined |
List of validation's rules. Required. |
controller |
Function |
undefined |
Controller of mutation's field. Required. |
validate(param: string, input: string)
Args | Type | Default | Description |
---|---|---|---|
param |
String |
undefined |
Name of param. Required. |
input |
String |
undefined |
Name of input. Options. |
Validator functions
Args | Type | Default | Description |
---|---|---|---|
config |
Object { msg: string, options: any } |
{ msg: 'Invalid value' } |
msg : Custom error message, options : options of validator functions. |
Contribution
Contribution are always welcome and recommended! Here is how:
- Fork the repository (here is the guide).
- Clone to your machine
git clone https://github.com/YOUR_USERNAME/graphql-validation.git
- Make your changes
- Create a pull request
License
graphql-validation
is released under the MIT license. See LICENSE for details.
Any question or support will welcome.