@graphql-inspector/cli
Tooling for GraphQL. Compare GraphQL Schemas, check documents, find breaking changes, find similar types.
Last updated a month ago by kamilkisiela .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @graphql-inspector/cli 
SYNC missed versions from official npm registry.

GraphQL Inspector

npm version

GraphQL Inspector ouputs a list of changes between two GraphQL schemas. Every change is precisely explained and marked as breaking, non-breaking or dangerous. It helps you validate documents and fragments against a schema and even find similar or duplicated types.

Example

Features

Major features:

  • Compares schemas
  • Finds breaking or dangerous changes
  • Validates documents against a schema
  • Finds similar / duplicated types
  • Schema coverage based on documents
  • Serves a GraphQL server with faked data and GraphQL Playground
  • GitHub Bot
  • GitHub Actions

GraphQL Inspector has a CLI and also a programatic API, so you can use it however you want to and even build tools on top of it.

Installation

# CLI
yarn add @graphql-inspector/cli

# Core API for programatic usage
yarn add @graphql-inspector/core

Compare schemas

Compares schemas and finds breaking or dangerous changes.

CLI:

$ graphql-inspector diff OLD_SCHEMA NEW_SCHEMA

API:

import {diff, Change} from '@graphql-inspector/core';

const changes: Change[] = diff(schemaA, schemaB);

Diff

Find similar types

Finds similar / duplicated types.

CLI:

$ graphql-inspector similar SCHEMA

API:

import {similar, SimilarMap} from '@graphql-inspector/core';

const similar: SimilarMap = similar(schema, typename, threshold);

Similar

Check coverage

Schema coverage based on documents. Find out how many times types and fields are used in your application.

CLI:

$ graphql-inspector coverage DOCUMENTS SCHEMA

API:

import {coverage, SchemaCoverage} from '@graphql-inspector/core';

const schemaCoverage: SchemaCoverage = coverage(schema, documents);

Coverage

Validate documents

Validates documents against a schema and looks for deprecated usage.

CLI:

$ graphql-inspector validate DOCUMENTS SCHEMA

API:

import {validate, InvalidDocument} from '@graphql-inspector/core';

const invalid: InvalidDocument[] = validate(documentsGlob, schema);

Validate

Serve faked GraphQL API

Serves a GraphQL server with faked data and GraphQL Playground

CLI:

$ graphql-inspector serve SCHEMA
✅ Serving the GraphQL API on http://localhost:4000/

Introspect GraphQL server

Introspects a GraphQL Server and writes the result to a file

CLI:

$ graphql-inspector introspect SCHEMA --write schema.json
✅ Introspection result saved to schema.json

GitHub Bot and GitHub Actions

Have a per-repository, self-hosted GraphQL Inspector service or deploy it with Docker.

# install
yarn global add @graphql-inspector/actions

# use

$ graphql-inspector-github
{
  "name": "app",
  "scripts": {
    "precommit": "graphql-inspector introspect schema.js --write schema.graphql && git add schema.graphql"
  },
  "graphql-inspector": {
    "diff": true,
    "schema": {
      "ref": "master",
      "path": "schema.graphql"
    }
  }
}

Get GitHub annotations in your PRs.

GitHub

CLI in more details

SCHEMA

Path to a CommonJS or ES Module that exports an object

Example:

graphql-inspector coverage ./src/schema.js

Example with TypeScript:

graphql-inspector coverage ./src/schema.ts --require ts-node/register
// String
export default `
  type Query {
    hello: String
  }
`

// GraphQLSchema
export default makeExecutableSchema({...});

// GraphQL Document
export default gql`
  type Query {
    hello: String
  }
`

// IntrospectionQuery result
export default {
  data: {
    __schema: {
      ...
    }
  }
}

Pointer to a Git repository

Example:

graphql-inspector diff git:origin/master:schema.graphql

Pattern:

git:ref:path/to/file

Pointer to a GitHub repository

Example:

graphql-inspector coverage github:kamilkisiela/graphql-inspector-example#master:schema.graphql

Pattern:

github:owner/name#ref:path/to/file

GraphQL File

Example:

graphql-inspector coverage schema.graphql
graphql-inspector coverage schema.gql

JSON File

Example:

graphql-inspector coverage introspected-schema.json

URL to a GraphQL endpoint

Example:

graphql-inspector coverage https://localhost:3000/graphql

DOCUMENTS

Glob pattern

Example:

graphql-inspector validate ./src/**/*.{js,jsx,tsx,graphql} https://localhost:3000/graphql

Supports TypeScript, JavaScript and GraphQL Files (Extensions: ts,tsx,js,jsx,graphql,gql,graphqls).

Help

Find out what the CLI is capable of:

graphql-inspector --help
graphql-inspector similar --help

License

MIT © Kamil Kisiela

Current Tags

  • 0.0.0-canary.58ffd99                                ...           canary (6 months ago)
  • 2.3.0                                ...           latest (a month ago)
  • 2.0.0-rc.2                                ...           next (7 months ago)

92 Versions

  • 2.3.0                                ...           a month ago
  • 2.2.0                                ...           4 months ago
  • 2.1.0                                ...           6 months ago
  • 0.0.0-canary.58ffd99                                ...           6 months ago
  • 0.0.0-canary.0fd8c6a                                ...           6 months ago
  • 0.0.0-canary.6f0f272                                ...           6 months ago
  • 0.0.0-canary.f71f99b                                ...           6 months ago
  • 0.0.0-canary.35db993                                ...           6 months ago
  • 0.0.0-canary.a883150                                ...           6 months ago
  • 0.0.0-canary.3c127cf                                ...           6 months ago
  • 0.0.0-canary.da4bdcc                                ...           6 months ago
  • 0.0.0-canary.6527017                                ...           6 months ago
  • 0.0.0-canary.8127707                                ...           6 months ago
  • 0.0.0-canary.9cf9b2c                                ...           6 months ago
  • 2.0.1                                ...           6 months ago
  • 2.0.0                                ...           7 months ago
  • 0.0.0-canary.57e2caa                                ...           7 months ago
  • 2.0.0-rc.2                                ...           7 months ago
  • 2.0.0-rc.1                                ...           7 months ago
  • 2.0.0-rc.0                                ...           7 months ago
  • 1.30.4                                ...           8 months ago
  • 1.30.3                                ...           8 months ago
  • 1.30.2                                ...           8 months ago
  • 1.30.1                                ...           8 months ago
  • 1.30.0-rc.0                                ...           8 months ago
  • 1.30.0                                ...           8 months ago
  • 1.27.0                                ...           a year ago
  • 0.0.0-d99f4ac.0                                ...           a year ago
  • 0.0.0-ea286dc.0                                ...           a year ago
  • 1.26.0                                ...           a year ago
  • 1.25.0                                ...           a year ago
  • 1.24.0                                ...           a year ago
  • 1.23.1                                ...           a year ago
  • 1.23.0                                ...           a year ago
  • 1.22.1                                ...           a year ago
  • 1.22.0                                ...           a year ago
  • 1.21.0                                ...           a year ago
  • 1.21.0-alpha.0                                ...           a year ago
  • 1.20.0                                ...           a year ago
  • 1.19.0                                ...           2 years ago
  • 1.19.0-alpha.1                                ...           2 years ago
  • 1.18.1                                ...           2 years ago
  • 1.18.0                                ...           2 years ago
  • 1.17.0                                ...           2 years ago
  • 1.16.0                                ...           2 years ago
  • 1.15.0                                ...           2 years ago
  • 1.15.0-rc.18                                ...           2 years ago
  • 1.15.0-rc.17                                ...           2 years ago
  • 1.15.0-rc.16                                ...           2 years ago
  • 1.15.0-rc.15                                ...           2 years ago
  • 1.15.0-rc.14                                ...           2 years ago
  • 1.15.0-rc.13                                ...           2 years ago
  • 1.15.0-rc.12                                ...           2 years ago
  • 1.15.0-rc.11                                ...           2 years ago
  • 1.15.0-rc.10                                ...           2 years ago
  • 1.15.0-rc.9                                ...           2 years ago
  • 1.15.0-rc.8                                ...           2 years ago
  • 1.15.0-rc.7                                ...           2 years ago
  • 1.15.0-rc.6                                ...           2 years ago
  • 1.15.0-rc.5                                ...           2 years ago
  • 1.15.0-rc.4                                ...           2 years ago
  • 1.15.0-rc.3                                ...           2 years ago
  • 1.15.0-rc.2                                ...           2 years ago
  • 1.15.0-rc.1                                ...           2 years ago
  • 1.15.0-rc.0                                ...           2 years ago
  • 1.14.1-rc.0                                ...           2 years ago
  • 1.14.0                                ...           2 years ago
  • 1.14.0-rc.0                                ...           2 years ago
  • 0.13.3                                ...           2 years ago
  • 0.13.2                                ...           2 years ago
  • 0.13.1                                ...           2 years ago
  • 0.13.0                                ...           2 years ago
  • 0.13.0-alpha.0                                ...           2 years ago
  • 0.12.0                                ...           2 years ago
  • 0.11.0                                ...           2 years ago
  • 0.10.0                                ...           2 years ago
  • 0.9.0                                ...           2 years ago
  • 0.8.0                                ...           2 years ago
  • 0.7.3                                ...           2 years ago
  • 0.7.2                                ...           2 years ago
  • 0.7.1                                ...           2 years ago
  • 0.7.0                                ...           2 years ago
  • 0.6.5                                ...           2 years ago
  • 0.6.4                                ...           2 years ago
  • 0.6.3                                ...           2 years ago
  • 0.6.2                                ...           2 years ago
  • 0.6.1                                ...           2 years ago
  • 0.6.0                                ...           2 years ago
  • 0.6.0-alpha.3                                ...           2 years ago
  • 0.6.0-alpha.2                                ...           2 years ago
  • 0.6.0-alpha.1                                ...           2 years ago
  • 0.6.0-alpha.0                                ...           2 years ago

Copyright 2014 - 2016 © taobao.org |