@creditkarma/graphql-validator
    TypeScript icon, indicating that this package has built-in type declarations

    0.5.0 • Public • Published

    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

    Keywords

    Install

    npm i @creditkarma/graphql-validator

    DownloadsWeekly Downloads

    78

    Version

    0.5.0

    License

    Apache-2.0

    Last publish

    Collaborators