graphql-language-service-server
Version:
Server process backing the GraphQL Language Service
74 lines • 4.46 kB
TypeScript
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