3 releases

0.1.3 Apr 26, 2024
0.1.2 Apr 26, 2024
0.1.1 Apr 26, 2024
0.1.0 Apr 26, 2024

#33 in #graphql-schema

Download history 167/week @ 2024-07-22 318/week @ 2024-07-29 152/week @ 2024-08-05 47/week @ 2024-08-12 1/week @ 2024-08-26 5/week @ 2024-09-09 10/week @ 2024-09-16 23/week @ 2024-09-23 27/week @ 2024-09-30 7/week @ 2024-10-07 29/week @ 2024-10-14 23/week @ 2024-10-21 15/week @ 2024-10-28 42/week @ 2024-11-04

109 downloads per month
Used in gqlint

Apache-2.0

30KB
609 lines

graphql-lint

A Rust based linter for GraphQL SDL schemas.

graphql-lint is used in the Grafbase Platform and CLI.

Currently Supported Lints

  • Naming conventions
    • Types: PascalCase
      • Forbidden prefixes: "Type"
      • Forbidden suffixes: "Type"
    • Fields: camelCase
    • Input values: camelCase
    • Arguments: camelCase
    • Directives: camelCase
    • Enums: PascalCase
      • Forbidden prefixes: "Enum"
      • Forbidden suffixes: "Enum"
    • Unions
      • Forbidden prefixes: "Union"
      • Forbidden suffixes: "Union"
    • Enum values: SCREAMING_SNAKE_CASE
    • Interfaces
      • Forbidden prefixes: "Interface"
      • Forbidden suffixes: "Interface"
    • Query fields
      • Forbidden prefixes: ["query", "get", "list"]
      • Forbidden suffixes: "Query"
    • Mutation fields
      • Forbidden prefixes: ["mutation", "put", "post", "patch"]
      • Forbidden suffixes: "Mutation"
    • Subscription fields
      • Forbidden prefixes: "subscription"
      • Forbidden suffixes: "Subscription"
  • Usage of the @deprecated directive requires specifying the reason argument

Usage

[dependencies]
graphql-lint = "0.1.3"
use graphql_lint::lint;

fn main () {
    let schema = r#"
        type Query {
          hello: String!
        }
    "#;

    let violations = lint(schema).unwrap();
}

Dependencies

~4.5MB
~65K SLoC