Skip to content

A CLI tool to validate queries against a GraphQL Schema. The primary use case for this tool is to validate schema changes against an existing query store.

License

Notifications You must be signed in to change notification settings

glendaviesnz/graphql-validator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

graphql-validator

A CLI tool to validate queries against a GraphQL Schema. The primary use case for this tool is to validate schema changes against an existing query store.

Installation

To use the validator as a command line tool

npm install -g graphql @creditkarma/graphql-validator

To use the validator locally in a project

npm install --save graphql @creditkarma/graphql-validator

Usage

Given the following files

schema/schema.graphql

schema {
  query: RootQuery
}

schema/rootQuery.graphql

type RootQuery {
  testString: String
}

queries/test.graphql

{testString}

Validate the query

Validate the query with the following code:

const loadSchema = require('@creditkarma/graphql-loader')
const validator = require('@creditkarma/graphql-validator')

loadSchema('./schema/*.graphql', (err, schema) => {
  validator.validateQueryFiles('./queries/*.graphql', schema, (errors) => {
    if (errors) {
         console.log('errors', errors);
    } else {
        console.log('All queries validated');
    }
  })
})

Validate the query using promises:

const loadSchema = require('@creditkarma/graphql-loader')
const validator = require('@creditkarma/graphql-validator')

loadSchema('./schema/*.graphql').then((schema) => {
  validator.validateQueryFiles('./queries/*.graphql', schema).then((results) => {
    console.log(results)
  })
})

Validate query using CLI tool

> graphql-validator -s "./schema/**/*.graphql" "./queries/*.graphql"

The validator will first load and validate the schema, throwing errors if the schema isn't valid. Then it will check each query in the file glob by parsing the query and validating it against the schema. If errors are found, the will be displayed by file name and exit with exit code 1.

Note: you must use quotes around each file glob or the utility will not work properly.

Development

Install dependencies with

npm install
npm run typings

Build

npm run build

Run test in watch mode

npm run test:watch

Contributing

For more information about contributing new features and bug fixes, see our Contribution Guidelines. External contributors must sign Contributor License Agreement (CLA)

License

This project is licensed under Apache License Version 2.0

About

A CLI tool to validate queries against a GraphQL Schema. The primary use case for this tool is to validate schema changes against an existing query store.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 84.9%
  • JavaScript 15.1%