What is graphql-language-service-types?
The graphql-language-service-types package provides TypeScript types for GraphQL language services. It is designed to support the development of tools and services that work with GraphQL, such as editors, IDEs, and other development tools. The package includes types for various GraphQL language constructs, diagnostics, and more.
What are graphql-language-service-types's main functionalities?
GraphQL Language Constructs
This feature allows you to define GraphQL schemas using the provided types. The code sample demonstrates how to create a simple schema with a single query field.
import { GraphQLSchema, GraphQLObjectType, GraphQLString } from 'graphql-language-service-types';
const schema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'RootQueryType',
fields: {
hello: {
type: GraphQLString,
resolve() {
return 'Hello world!';
}
}
}
})
});
Diagnostics
This feature provides types for diagnostics, which can be used to report errors and warnings in GraphQL documents. The code sample shows how to create a diagnostic object for a syntax error.
import { Diagnostic, DiagnosticSeverity } from 'graphql-language-service-types';
const diagnostic: Diagnostic = {
range: {
start: { line: 0, character: 0 },
end: { line: 0, character: 5 }
},
message: 'Syntax error',
severity: DiagnosticSeverity.Error
};
Completion Items
This feature provides types for completion items, which can be used to offer code completion suggestions in GraphQL documents. The code sample demonstrates how to create a completion item for a query field.
import { CompletionItem, CompletionItemKind } from 'graphql-language-service-types';
const completionItem: CompletionItem = {
label: 'Query',
kind: CompletionItemKind.Field,
data: 'query'
};
Other packages similar to graphql-language-service-types
graphql
The graphql package is the reference implementation of the GraphQL specification. It provides the core functionality for defining and executing GraphQL queries. While it does not specifically focus on language services, it includes many of the same types and utilities for working with GraphQL schemas and documents.
graphql-tools
The graphql-tools package provides a set of utilities for building and manipulating GraphQL schemas. It includes features for schema stitching, mocking, and more. While it overlaps with some of the functionality of graphql-language-service-types, it is more focused on schema construction and manipulation rather than language services.
graphql-language-service
The graphql-language-service package provides a complete language server implementation for GraphQL. It includes features such as auto-completion, diagnostics, and more. It uses graphql-language-service-types for its type definitions, making it a more comprehensive solution for building GraphQL language services.