1 | import { GraphQLSchema, GraphQLError, TypeDefinitionNode, DirectiveDefinitionNode, TypeExtensionNode } from 'graphql';
|
2 | import { CompositionResult } from './utils';
|
3 | import { ServiceDefinition, ExternalFieldDefinition } from './types';
|
4 | import type { ServiceNameToKeyDirectivesMap } from '../composition/types';
|
5 | import { DirectiveMetadata } from './DirectiveMetadata';
|
6 | interface TypeDefinitionsMap {
|
7 | [name: string]: TypeDefinitionNode[];
|
8 | }
|
9 | interface TypeExtensionsMap {
|
10 | [name: string]: TypeExtensionNode[];
|
11 | }
|
12 | interface DirectiveDefinitionsMap {
|
13 | [name: string]: {
|
14 | [serviceName: string]: DirectiveDefinitionNode;
|
15 | };
|
16 | }
|
17 | interface TypeToServiceMap {
|
18 | [typeName: string]: {
|
19 | owningService?: string;
|
20 | extensionFieldsToOwningServiceMap: {
|
21 | [fieldName: string]: string;
|
22 | };
|
23 | };
|
24 | }
|
25 | export interface KeyDirectivesMap {
|
26 | [typeName: string]: ServiceNameToKeyDirectivesMap;
|
27 | }
|
28 | declare type ValueTypes = Set<string>;
|
29 | export 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 | };
|
39 | export 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 | };
|
49 | export 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;
|
58 | export declare function composeServices(services: ServiceDefinition[]): CompositionResult;
|
59 | export {};
|
60 |
|
\ | No newline at end of file |