UNPKG

2.45 kBTypeScriptView Raw
1import { GraphQLSchema, GraphQLError, TypeDefinitionNode, DirectiveDefinitionNode, TypeExtensionNode } from 'graphql';
2import { CompositionResult } from './utils';
3import { ServiceDefinition, ExternalFieldDefinition } from './types';
4import type { ServiceNameToKeyDirectivesMap } from '../composition/types';
5import { DirectiveMetadata } from './DirectiveMetadata';
6interface TypeDefinitionsMap {
7 [name: string]: TypeDefinitionNode[];
8}
9interface TypeExtensionsMap {
10 [name: string]: TypeExtensionNode[];
11}
12interface DirectiveDefinitionsMap {
13 [name: string]: {
14 [serviceName: string]: DirectiveDefinitionNode;
15 };
16}
17interface TypeToServiceMap {
18 [typeName: string]: {
19 owningService?: string;
20 extensionFieldsToOwningServiceMap: {
21 [fieldName: string]: string;
22 };
23 };
24}
25export interface KeyDirectivesMap {
26 [typeName: string]: ServiceNameToKeyDirectivesMap;
27}
28declare type ValueTypes = Set<string>;
29export declare function buildMapsFromServiceList(serviceList: ServiceDefinition[]): {
30 typeToServiceMap: TypeToServiceMap;
31 typeDefinitionsMap: TypeDefinitionsMap;
32 typeExtensionsMap: TypeExtensionsMap;
33 directiveDefinitionsMap: DirectiveDefinitionsMap;
34 externalFields: ExternalFieldDefinition[];
35 keyDirectivesMap: KeyDirectivesMap;
36 valueTypes: ValueTypes;
37 directiveMetadata: DirectiveMetadata;
38};
39export declare function buildSchemaFromDefinitionsAndExtensions({ typeDefinitionsMap, typeExtensionsMap, directiveDefinitionsMap, directiveMetadata, serviceList, }: {
40 typeDefinitionsMap: TypeDefinitionsMap;
41 typeExtensionsMap: TypeExtensionsMap;
42 directiveDefinitionsMap: DirectiveDefinitionsMap;
43 directiveMetadata: DirectiveMetadata;
44 serviceList: ServiceDefinition[];
45}): {
46 schema: GraphQLSchema;
47 errors: GraphQLError[];
48};
49export declare function addFederationMetadataToSchemaNodes({ schema, typeToServiceMap, externalFields, keyDirectivesMap, valueTypes, directiveDefinitionsMap, directiveMetadata, }: {
50 schema: GraphQLSchema;
51 typeToServiceMap: TypeToServiceMap;
52 externalFields: ExternalFieldDefinition[];
53 keyDirectivesMap: KeyDirectivesMap;
54 valueTypes: ValueTypes;
55 directiveDefinitionsMap: DirectiveDefinitionsMap;
56 directiveMetadata: DirectiveMetadata;
57}): void;
58export declare function composeServices(services: ServiceDefinition[]): CompositionResult;
59export {};
60//# sourceMappingURL=compose.d.ts.map
\No newline at end of file