graphql-validate-directive
Version:
A GraphQL directive for input validation
76 lines (55 loc) • 1.92 kB
Markdown
# graphql-validate-directive
[](https://www.npmjs.com/package/graphql-validate-directive)



### Summary
This is a directive validation library for GraphQL. Inspired by [validate-directive](https://github.com/cjihrig/validate-directive).
Different with [graphql-constraint-directive](https://github.com/confuser/graphql-constraint-directive). It do validate on resolve field instead of creating new scaler.
### Installation
```sh
yarn add graphql-validate-directive
```
or
```sh
npm i -S graphql-validate-directive
```
### Usage
Use in the project.
```ts
import {
validateDirective,
GraphQLValidateDirectiveTypeDefs,
} from 'graphql-validate-directive'
import { makeExecutableSchema } from '@graphql-tools/schema'
const schema = makeExecutableSchema({
typeDefs: [
// ... your type definitions
GraphQLValidateDirectiveTypeDefs,
],
resolvers: {
// ...
},
})
validateDirective()(schema)
```
Use in schema.
```graphql
# used on input field
input PostInput {
title: String! @validate(minLength: 1, maxLength: 1000)
content: String! @validate(minLength: 1, maxLength: 1000)
# used on array
tags: [String!]
@validate(minItems: 1, maxItems: 10, minLength: 1, maxLength: 100)
}
type Mutation {
createPost(input: PostInput!): Post
# used on argument
createMessage(
content: String! @validate(minLength: 1, maxLength: 200)
): Message
}
```
### License
MIT Licensed.