graphql-schema-value-validation

0.1.1 • Public • Published

GraphQL schema value validation

Build Status

This package provides custom directives for validating values in GraphQL schema. If value do not satisfy directive restriction, query will throw an error.

Install

npm install graphql-schema-value-validation

Directives list

Used directives should be added to schema, as listed below:

@length

directive @length(min: Int, max: Int) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION

@notEmpty

directive @notEmpty on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION

@range

directive @range (min: Int, max: Int) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION

@email

directive @range (min: Int, max: Int) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION

@regex

directive @regex (pattern: String) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION

@date

directive @date on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION

@url

directive @url on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION

@jwt

directive @jwt on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION

Usage

Just import the implementation of the directive:

const {
  LengthDirective
} = require('graphql-schema-value-validation');

then pass it to makeExecutableSchema via the code block schemaDirectives argument:

const schema = makeExecutableSchema({
  typeDefs,
  schemaDirectives: {
      length: LengthDirective
  },
  resolvers
});

and use it in schema:

type Query {
  books(title: String @length(min: 1, max: 12)): [Book]
}

type Book {
  title: String
  publishDate: String
  publisherUrl: String
  author: Author
}

Readme

Keywords

none

Package Sidebar

Install

npm i graphql-schema-value-validation

Weekly Downloads

9

Version

0.1.1

License

MIT

Unpacked Size

18.1 kB

Total Files

19

Last publish

Collaborators

  • maksimovic