UNPKG

graphql-language-service-server

Version:
74 lines 4.46 kB
import { ASTNode, DocumentNode, GraphQLSchema } from 'graphql'; import type { CachedContent, GraphQLFileMetadata, GraphQLFileInfo, FragmentInfo, ObjectTypeInfo, Uri } from 'graphql-language-service'; import { GraphQLConfig, GraphQLProjectConfig } from 'graphql-config'; import type { UnnormalizedTypeDefPointer } from '@graphql-tools/load'; import { parseDocument } from './parseDocument'; import { LoadConfigOptions } from './types'; import { NoopLogger, Logger } from './Logger'; export declare type OnSchemaChange = (project: GraphQLProjectConfig) => void; export declare function getGraphQLCache({ parser, logger, loadConfigOptions, config, onSchemaChange, schemaCacheTTL, }: { parser: typeof parseDocument; logger: Logger | NoopLogger; loadConfigOptions: LoadConfigOptions; config?: GraphQLConfig; onSchemaChange?: OnSchemaChange; schemaCacheTTL?: number; }): Promise<GraphQLCache>; export declare class GraphQLCache { _configDir: Uri; _graphQLFileListCache: Map<Uri, Map<string, GraphQLFileInfo>>; _graphQLConfig: GraphQLConfig; _schemaMap: Map<Uri, GraphQLSchema>; _typeExtensionMap: Map<Uri, number>; _fragmentDefinitionsCache: Map<Uri, Map<string, FragmentInfo>>; _typeDefinitionsCache: Map<Uri, Map<string, ObjectTypeInfo>>; _parser: typeof parseDocument; _logger: Logger | NoopLogger; _onSchemaChange?: OnSchemaChange; _schemaCacheTTL?: number; constructor({ configDir, config, parser, logger, onSchemaChange, schemaCacheTTL, }: { configDir: Uri; config: GraphQLConfig; parser: typeof parseDocument; logger: Logger | NoopLogger; onSchemaChange?: OnSchemaChange; schemaCacheTTL?: number; }); getGraphQLConfig: () => GraphQLConfig; getProjectForFile: (uri: string) => GraphQLProjectConfig | void; getFragmentDependencies: (query: string, fragmentDefinitions?: Map<string, FragmentInfo> | null) => Promise<FragmentInfo[]>; getFragmentDependenciesForAST: (parsedQuery: ASTNode, fragmentDefinitions: Map<string, FragmentInfo>) => Promise<FragmentInfo[]>; _cacheKeyForProject: ({ dirpath, name }: GraphQLProjectConfig) => string; getFragmentDefinitions: (projectConfig: GraphQLProjectConfig) => Promise<Map<string, FragmentInfo>>; getObjectTypeDependenciesForAST: (parsedQuery: ASTNode, objectTypeDefinitions: Map<string, ObjectTypeInfo>) => Promise<Array<ObjectTypeInfo>>; getObjectTypeDefinitions: (projectConfig: GraphQLProjectConfig) => Promise<Map<string, ObjectTypeInfo>>; _readFilesFromInputDirs: (rootDir: string, projectConfig: GraphQLProjectConfig) => Promise<Array<GraphQLFileMetadata>>; _getSchemaAndDocumentFilePatterns: (projectConfig: GraphQLProjectConfig) => string[]; updateFragmentDefinition(projectCacheKey: Uri, filePath: Uri, contents: Array<CachedContent>): Promise<void>; _setFragmentCache(asts: { ast: DocumentNode | null; query: string; }[], fragmentCache: Map<string, FragmentInfo>, filePath: string | undefined): Map<string, FragmentInfo>; updateObjectTypeDefinition(projectCacheKey: Uri, filePath: Uri, contents: Array<CachedContent>): Promise<void>; _setDefinitionCache(asts: { ast: DocumentNode | null; query: string; }[], typeCache: Map<string, ObjectTypeInfo>, filePath: string | undefined): Map<string, ObjectTypeInfo>; _extendSchema(schema: GraphQLSchema, schemaPath: string | null, schemaCacheKey: string | null): GraphQLSchema; getSchema: (appName?: string, queryHasExtensions?: boolean | null) => Promise<GraphQLSchema | null>; invalidateSchemaCacheForProject(projectConfig: GraphQLProjectConfig): void; _getSchemaCacheKeyForProject(projectConfig: GraphQLProjectConfig): UnnormalizedTypeDefPointer; _getProjectName(projectConfig: GraphQLProjectConfig): string; readAllGraphQLFiles: (list: Array<GraphQLFileMetadata>) => Promise<{ objectTypeDefinitions: Map<string, ObjectTypeInfo>; fragmentDefinitions: Map<string, FragmentInfo>; graphQLFileMap: Map<string, GraphQLFileInfo>; }>; processGraphQLFiles: (responses: Array<GraphQLFileInfo>) => { objectTypeDefinitions: Map<string, ObjectTypeInfo>; fragmentDefinitions: Map<string, FragmentInfo>; graphQLFileMap: Map<string, GraphQLFileInfo>; }; promiseToReadGraphQLFile: (filePath: Uri) => Promise<GraphQLFileInfo>; } //# sourceMappingURL=GraphQLCache.d.ts.map