graphql-schema-validation

Crates.iographql-schema-validation
lib.rsgraphql-schema-validation
version0.1.3
sourcesrc
created_at2023-10-31 15:22:47.242551
updated_at2024-02-06 18:23:19.948447
descriptionA spec compliant implementation of GraphQL SDL schema validation
homepage
repositoryhttps://github.com/grafbase/grafbase/tree/main/engine/crates/validation
max_upload_size
id1019922
size70,103
Fredrik Björk (fbjork)

documentation

README

graphql-schema-validation

crates.io docs.rs

This crate implements GraphQL SDL schema validation according to the 2021 version of the GraphQL spec.

Scope:

  • All the spec and nothing but the spec.
  • Query documents are out of scope, we only validate schemas.
  • The error messages should be as close as possible to the style of other GraphQL schema validation libraries.

Example

use graphql_schema_validation::validate;

fn main() {
  let graphql = "schema { query: MyQueryDoesNotExist }";

  let diagnostics = validate(graphql);

  assert!(diagnostics.has_errors());

  let formatted_diagnostics = diagnostics.iter().map(|err| format!("{}", err)).collect::<Vec<String>>();
  assert_eq!(formatted_diagnostics, ["Cannot set schema query root to unknown type `MyQueryDoesNotExist`"]);
}

Status

The crate is being actively developed and maintained. It covers the spec completely and faithfully, as far as we are aware.

Commit count: 5396

cargo fmt