3 releases
0.1.3 | Apr 26, 2024 |
---|---|
0.1.2 |
|
0.1.1 | Apr 26, 2024 |
0.1.0 | Apr 26, 2024 |
#33 in #graphql-schema
109 downloads per month
Used in gqlint
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"
- Forbidden prefixes:
- Fields:
camelCase
- Input values:
camelCase
- Arguments:
camelCase
- Directives:
camelCase
- Enums:
PascalCase
- Forbidden prefixes:
"Enum"
- Forbidden suffixes:
"Enum"
- Forbidden prefixes:
- Unions
- Forbidden prefixes:
"Union"
- Forbidden suffixes:
"Union"
- Forbidden prefixes:
- Enum values:
SCREAMING_SNAKE_CASE
- Interfaces
- Forbidden prefixes:
"Interface"
- Forbidden suffixes:
"Interface"
- Forbidden prefixes:
- Query fields
- Forbidden prefixes:
["query", "get", "list"]
- Forbidden suffixes:
"Query"
- Forbidden prefixes:
- Mutation fields
- Forbidden prefixes:
["mutation", "put", "post", "patch"]
- Forbidden suffixes:
"Mutation"
- Forbidden prefixes:
- Subscription fields
- Forbidden prefixes:
"subscription"
- Forbidden suffixes:
"Subscription"
- Forbidden prefixes:
- Types:
- Usage of the
@deprecated
directive requires specifying thereason
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