graphql-language-service-server
Version:
Server process backing the GraphQL Language Service
86 lines • 4.49 kB
TypeScript
import { GraphQLConfig, GraphQLProjectConfig } from 'graphql-language-service';
import type { CompletionParams, DidSaveTextDocumentParams, DidOpenTextDocumentParams, DidChangeConfigurationParams, Diagnostic, CompletionList, CancellationToken, Hover, InitializeResult, Location, PublishDiagnosticsParams, DidChangeTextDocumentParams, DidCloseTextDocumentParams, DidChangeWatchedFilesParams, InitializeParams, Range as RangeType, TextDocumentPositionParams, DocumentSymbolParams, SymbolInformation, WorkspaceSymbolParams, Connection, DidChangeConfigurationRegistrationOptions } from 'vscode-languageserver/node';
import { parseDocument } from './parseDocument';
import type { LoadConfigOptions, LocateCommand } from './types';
import { SupportedExtensionsEnum } from './constants';
import { NoopLogger, Logger } from './Logger';
import { DefinitionQueryResponse } from 'graphql-language-service/src/interface';
export declare class MessageProcessor {
private _connection;
private _graphQLCache;
private _languageService;
private _textDocumentCache;
private _isInitialized;
private _isGraphQLConfigMissing;
private _willShutdown;
private _logger;
private _parser;
private _tmpDir;
private _tmpDirBase;
private _loadConfigOptions;
private _rootPath;
private _settings;
private _providedConfig?;
constructor({ logger, fileExtensions, graphqlFileExtensions, loadConfigOptions, config, parser, tmpDir, connection, }: {
logger: Logger | NoopLogger;
fileExtensions: ReadonlyArray<SupportedExtensionsEnum>;
graphqlFileExtensions: string[];
loadConfigOptions: LoadConfigOptions;
config?: GraphQLConfig;
parser?: typeof parseDocument;
tmpDir?: string;
connection: Connection;
});
get connection(): Connection;
set connection(connection: Connection);
handleInitializeRequest(params: InitializeParams, _token?: CancellationToken, configDir?: string): Promise<InitializeResult>;
_initializeGraphQLCaches(): Promise<void>;
private _handleConfigError;
private _logConfigError;
private _isGraphQLConfigFile;
private _loadConfigOrSkip;
handleDidOpenOrSaveNotification(params: DidSaveTextDocumentParams | DidOpenTextDocumentParams): Promise<PublishDiagnosticsParams>;
handleDidChangeNotification(params: DidChangeTextDocumentParams): Promise<PublishDiagnosticsParams | null>;
handleDidChangeConfiguration(_params: DidChangeConfigurationParams): Promise<DidChangeConfigurationRegistrationOptions>;
handleDidCloseNotification(params: DidCloseTextDocumentParams): void;
handleShutdownRequest(): void;
handleExitNotification(): void;
private validateDocumentAndPosition;
handleCompletionRequest(params: CompletionParams): Promise<CompletionList>;
handleHoverRequest(params: TextDocumentPositionParams): Promise<Hover>;
private _parseAndCacheFile;
handleWatchedFilesChangedNotification(params: DidChangeWatchedFilesParams): Promise<Array<PublishDiagnosticsParams | undefined> | null>;
handleDefinitionRequest(params: TextDocumentPositionParams, _token?: CancellationToken): Promise<Array<Location>>;
_getCustomLocateResult(project: GraphQLProjectConfig, result: DefinitionQueryResponse, locateCommand: LocateCommand): {
range: {
start: {
line: number;
character: number;
};
end: {
line: number;
character: number;
};
};
uri: string;
} | null;
handleDocumentSymbolRequest(params: DocumentSymbolParams): Promise<Array<SymbolInformation>>;
handleWorkspaceSymbolRequest(params: WorkspaceSymbolParams): Promise<Array<SymbolInformation>>;
private _getTextDocuments;
private _cacheSchemaText;
private _cacheSchemaFile;
private _getTmpProjectPath;
private getCachedSchemaSettings;
private _cacheSchemaFilesForProject;
private cacheConfigSchemaFile;
private _cacheDocumentFilesforProject;
private _cacheAllProjectFiles;
_isRelayCompatMode(query: string): boolean;
private _updateFragmentDefinition;
private _updateSchemaIfChanged;
private _updateObjectTypeDefinition;
private _getCachedDocument;
private _invalidateCache;
}
export declare function processDiagnosticsMessage(results: Diagnostic[], query: string, range: RangeType | null): Diagnostic[];
//# sourceMappingURL=MessageProcessor.d.ts.map