UNPKG

graphql-language-service-types

Version:
167 lines 6.19 kB
import type { Diagnostic as DiagnosticType, CompletionItem as CompletionItemType } from 'vscode-languageserver-types'; import type { ASTNode, GraphQLSchema } from 'graphql'; import type { DocumentNode, FragmentDefinitionNode, NamedTypeNode, TypeDefinitionNode, NameNode } from 'graphql/language'; import type { GraphQLArgument, GraphQLEnumValue, GraphQLField, GraphQLInputFieldMap, GraphQLInterfaceType, GraphQLObjectType, GraphQLType } from 'graphql/type/definition'; import type { GraphQLDirective } from 'graphql/type/directives'; export declare type Maybe<T> = T | null | undefined; import type { GraphQLConfig, GraphQLProjectConfig, GraphQLExtensionDeclaration } from 'graphql-config'; export type { GraphQLConfig, GraphQLProjectConfig, GraphQLExtensionDeclaration, }; export interface GraphQLCache { getGraphQLConfig: () => GraphQLConfig; getProjectForFile: (uri: string) => GraphQLProjectConfig; getObjectTypeDependencies: (query: string, fragmentDefinitions: Map<string, ObjectTypeInfo>) => Promise<ObjectTypeInfo[]>; getObjectTypeDependenciesForAST: (parsedQuery: ASTNode, fragmentDefinitions: Map<string, ObjectTypeInfo>) => Promise<ObjectTypeInfo[]>; getObjectTypeDefinitions: (graphQLConfig: GraphQLProjectConfig) => Promise<Map<string, ObjectTypeInfo>>; updateObjectTypeDefinition: (rootDir: Uri, filePath: Uri, contents: CachedContent[]) => Promise<void>; updateObjectTypeDefinitionCache: (rootDir: Uri, filePath: Uri, exists: boolean) => Promise<void>; getFragmentDependencies: (query: string, fragmentDefinitions: Maybe<Map<string, FragmentInfo>>) => Promise<FragmentInfo[]>; getFragmentDependenciesForAST: (parsedQuery: ASTNode, fragmentDefinitions: Map<string, FragmentInfo>) => Promise<FragmentInfo[]>; getFragmentDefinitions: (graphQLConfig: GraphQLProjectConfig) => Promise<Map<string, FragmentInfo>>; updateFragmentDefinition: (rootDir: Uri, filePath: Uri, contents: CachedContent[]) => Promise<void>; updateFragmentDefinitionCache: (rootDir: Uri, filePath: Uri, exists: boolean) => Promise<void>; getSchema: (appName?: string, queryHasExtensions?: boolean) => Promise<GraphQLSchema | null>; } export interface IPosition { line: number; character: number; setLine(line: number): void; setCharacter(character: number): void; lessThanOrEqualTo(position: IPosition): boolean; } export interface IRange { start: IPosition; end: IPosition; setEnd(line: number, character: number): void; setStart(line: number, character: number): void; containsPosition(position: IPosition): boolean; } export declare type CachedContent = { query: string; range: IRange | null; }; export declare type Uri = string; export declare type GraphQLFileMetadata = { filePath: Uri; size: number; mtime: number; }; export declare type GraphQLFileInfo = { filePath: Uri; content: string; asts: DocumentNode[]; queries: CachedContent[]; size: number; mtime: number; }; export declare type AllTypeInfo = { type: Maybe<GraphQLType>; parentType: Maybe<GraphQLType>; inputType: Maybe<GraphQLType>; directiveDef: Maybe<GraphQLDirective>; fieldDef: Maybe<GraphQLField<any, any>>; enumValue: Maybe<GraphQLEnumValue>; argDef: Maybe<GraphQLArgument>; argDefs: Maybe<GraphQLArgument[]>; objectFieldDefs: Maybe<GraphQLInputFieldMap>; interfaceDef: Maybe<GraphQLInterfaceType>; objectTypeDef: Maybe<GraphQLObjectType>; }; export declare type FragmentInfo = { filePath?: Uri; content: string; definition: FragmentDefinitionNode; }; export declare type NamedTypeInfo = { filePath?: Uri; content: string; definition: NamedTypeNode; }; export declare type ObjectTypeInfo = { filePath?: Uri; content: string; definition: TypeDefinitionNode; }; export declare type Diagnostic = DiagnosticType; export declare type CompletionItemBase = { label: string; isDeprecated?: boolean; }; export declare type CompletionItem = CompletionItemType & { isDeprecated?: boolean; documentation?: string | null; deprecationReason?: string | null; type?: GraphQLType; command?: CompletionItemType['command']; }; export declare type Definition = { path: Uri; position: IPosition; range?: IRange; id?: string; name?: string; language?: string; projectRoot?: Uri; }; export declare type TokenKind = 'keyword' | 'class-name' | 'constructor' | 'method' | 'param' | 'string' | 'whitespace' | 'plain' | 'type'; export declare type TextToken = { kind: TokenKind; value: string | NameNode; }; export declare type TokenizedText = TextToken[]; export declare type OutlineTree = { plainText?: string; tokenizedText?: TokenizedText; representativeName?: string; kind: string; startPosition: IPosition; endPosition?: IPosition; children: OutlineTree[]; }; export declare type Outline = { outlineTrees: OutlineTree[]; }; export interface FileEvent { uri: string; type: FileChangeType; } export declare const FileChangeTypeKind: { Created: number; Changed: number; Deleted: number; }; export declare type FileChangeTypeKind = { Created: 1; Changed: 2; Deleted: 3; }; export declare type FileChangeTypeKeys = keyof FileChangeTypeKind; export declare type FileChangeType = FileChangeTypeKind[FileChangeTypeKeys]; export declare namespace CompletionItemKind { const Text: 1; const Method: 2; const Function: 3; const Constructor: 4; const Field: 5; const Variable: 6; const Class: 7; const Interface: 8; const Module: 9; const Property: 10; const Unit: 11; const Value: 12; const Enum: 13; const Keyword: 14; const Snippet: 15; const Color: 16; const File: 17; const Reference: 18; const Folder: 19; const EnumMember: 20; const Constant: 21; const Struct: 22; const Event: 23; const Operator: 24; const TypeParameter: 25; } export declare type CompletionItemKind = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25; //# sourceMappingURL=index.d.ts.map