@wundergraph/composition 0.6.2 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ast/utils.d.ts +10 -19
- package/dist/ast/utils.js +51 -165
- package/dist/ast/utils.js.map +1 -1
- package/dist/errors/errors.d.ts +23 -5
- package/dist/errors/errors.js +135 -25
- package/dist/errors/errors.js.map +1 -1
- package/dist/federation/federation-factory.js +3 -10
- package/dist/federation/federation-factory.js.map +1 -1
- package/dist/federation/utils.d.ts +0 -3
- package/dist/normalization/normalization-factory.d.ts +5 -3
- package/dist/normalization/normalization-factory.js +104 -64
- package/dist/normalization/normalization-factory.js.map +1 -1
- package/dist/normalization/utils.d.ts +11 -2
- package/dist/normalization/utils.js +441 -83
- package/dist/normalization/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/constants.d.ts +2 -1
- package/dist/utils/constants.js +12 -11
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/string-constants.d.ts +1 -1
- package/dist/utils/string-constants.js +1 -1
- package/dist/utils/string-constants.js.map +1 -1
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.js +11 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -13,15 +13,12 @@ const buildASTSchema_1 = require("../buildASTSchema/buildASTSchema");
|
|
|
13
13
|
const merge_1 = require("@graphql-tools/merge");
|
|
14
14
|
const ast_1 = require("../ast/ast");
|
|
15
15
|
function normalizeSubgraphFromString(subgraph) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
catch (err) {
|
|
21
|
-
return { errors: [(0, errors_1.subgraphInvalidSyntaxError)(err)] };
|
|
16
|
+
const { error, documentNode } = (0, utils_1.safeParse)(subgraph);
|
|
17
|
+
if (error || !documentNode) {
|
|
18
|
+
return { errors: [(0, errors_1.subgraphInvalidSyntaxError)(error)] };
|
|
22
19
|
}
|
|
23
20
|
const normalizationFactory = new NormalizationFactory();
|
|
24
|
-
return normalizationFactory.normalize(
|
|
21
|
+
return normalizationFactory.normalize(documentNode);
|
|
25
22
|
}
|
|
26
23
|
exports.normalizeSubgraphFromString = normalizeSubgraphFromString;
|
|
27
24
|
function normalizeSubgraph(document) {
|
|
@@ -32,9 +29,11 @@ exports.normalizeSubgraph = normalizeSubgraph;
|
|
|
32
29
|
class NormalizationFactory {
|
|
33
30
|
abstractToConcreteTypeNames = new Map();
|
|
34
31
|
allDirectiveDefinitions = new Map();
|
|
32
|
+
configurationDataMap = new Map();
|
|
35
33
|
customDirectiveDefinitions = new Map();
|
|
36
34
|
errors = [];
|
|
37
|
-
|
|
35
|
+
entities = new Set();
|
|
36
|
+
fieldSetsByParent = new Map();
|
|
38
37
|
keyFieldsByParentTypeName = new Map();
|
|
39
38
|
operationTypeNames = new Map();
|
|
40
39
|
parents = new Map();
|
|
@@ -280,14 +279,9 @@ class NormalizationFactory {
|
|
|
280
279
|
|| !isEntity) {
|
|
281
280
|
return;
|
|
282
281
|
}
|
|
283
|
-
|
|
284
|
-
const
|
|
285
|
-
|
|
286
|
-
this.errors.push(...errors);
|
|
287
|
-
}
|
|
288
|
-
if (!existingEntityKeyMap) {
|
|
289
|
-
this.entityMap.set(this.parentTypeName, entityKeyMap);
|
|
290
|
-
}
|
|
282
|
+
this.entities.add(this.parentTypeName);
|
|
283
|
+
const fieldSets = (0, utils_3.getValueOrDefault)(this.fieldSetsByParent, this.parentTypeName, utils_2.newFieldSetContainer);
|
|
284
|
+
this.extractKeyFieldSets(node, fieldSets.keys);
|
|
291
285
|
}
|
|
292
286
|
validateChildDirectives(child, hostPath) {
|
|
293
287
|
const childKind = child.node.kind;
|
|
@@ -363,6 +357,42 @@ class NormalizationFactory {
|
|
|
363
357
|
return false;
|
|
364
358
|
}
|
|
365
359
|
}
|
|
360
|
+
extractKeyFieldSets(node, rawFieldSets) {
|
|
361
|
+
const parentTypeName = node.name.value;
|
|
362
|
+
if (!node.directives?.length) {
|
|
363
|
+
// This should never happen
|
|
364
|
+
this.errors.push((0, errors_1.expectedEntityError)(parentTypeName));
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
const errorMessages = [];
|
|
368
|
+
for (const directive of node.directives) {
|
|
369
|
+
if (directive.name.value !== string_constants_1.KEY) {
|
|
370
|
+
continue;
|
|
371
|
+
}
|
|
372
|
+
if (!directive.arguments || directive.arguments.length < 1) {
|
|
373
|
+
errorMessages.push((0, errors_1.undefinedRequiredArgumentsErrorMessage)(string_constants_1.KEY, parentTypeName, [string_constants_1.FIELDS]));
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
for (const arg of directive.arguments) {
|
|
377
|
+
const argumentName = arg.name.value;
|
|
378
|
+
if (arg.name.value === string_constants_1.RESOLVABLE) {
|
|
379
|
+
continue;
|
|
380
|
+
}
|
|
381
|
+
if (arg.name.value !== string_constants_1.FIELDS) {
|
|
382
|
+
errorMessages.push((0, errors_1.unexpectedDirectiveArgumentErrorMessage)(string_constants_1.KEY, argumentName));
|
|
383
|
+
break;
|
|
384
|
+
}
|
|
385
|
+
if (arg.value.kind !== graphql_1.Kind.STRING) {
|
|
386
|
+
errorMessages.push((0, errors_1.invalidKeyDirectiveArgumentErrorMessage)(arg.value.kind));
|
|
387
|
+
break;
|
|
388
|
+
}
|
|
389
|
+
rawFieldSets.add(arg.value.value);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
if (errorMessages.length) {
|
|
393
|
+
this.errors.push((0, errors_1.invalidKeyDirectivesError)(parentTypeName, errorMessages));
|
|
394
|
+
}
|
|
395
|
+
}
|
|
366
396
|
validateInterfaceImplementations(container) {
|
|
367
397
|
if (container.interfaces.size < 1) {
|
|
368
398
|
return;
|
|
@@ -564,9 +594,9 @@ class NormalizationFactory {
|
|
|
564
594
|
}
|
|
565
595
|
const fieldPath = `${factory.parentTypeName}.${name}`;
|
|
566
596
|
factory.isChild = true;
|
|
567
|
-
const
|
|
568
|
-
if (!constants_1.BASE_SCALARS.has(
|
|
569
|
-
factory.referencedTypeNames.add(
|
|
597
|
+
const fieldNamedTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, node.type);
|
|
598
|
+
if (!constants_1.BASE_SCALARS.has(fieldNamedTypeName)) {
|
|
599
|
+
factory.referencedTypeNames.add(fieldNamedTypeName);
|
|
570
600
|
}
|
|
571
601
|
const parent = factory.isCurrentParentExtension
|
|
572
602
|
? (0, utils_3.getOrThrowError)(factory.extensions, factory.parentTypeName, string_constants_1.EXTENSIONS)
|
|
@@ -578,14 +608,11 @@ class NormalizationFactory {
|
|
|
578
608
|
throw (0, errors_1.unexpectedKindFatalError)(factory.parentTypeName);
|
|
579
609
|
}
|
|
580
610
|
if (parent.fields.has(name)) {
|
|
581
|
-
|
|
582
|
-
? (0, errors_1.duplicateFieldExtensionError)(factory.parentTypeName, name)
|
|
583
|
-
: (0, errors_1.duplicateFieldDefinitionError)(name, factory.parentTypeName);
|
|
584
|
-
factory.errors.push(error);
|
|
611
|
+
factory.errors.push((0, errors_1.duplicateFieldDefinitionError)(name, factory.parentTypeName));
|
|
585
612
|
return;
|
|
586
613
|
}
|
|
587
614
|
// recreate the node so the argument descriptions are updated
|
|
588
|
-
|
|
615
|
+
const fieldContainer = {
|
|
589
616
|
arguments: factory.extractArguments(node, new Map(), fieldPath),
|
|
590
617
|
directives: factory.extractDirectives(node, new Map()),
|
|
591
618
|
name,
|
|
@@ -595,8 +622,29 @@ class NormalizationFactory {
|
|
|
595
622
|
...arg,
|
|
596
623
|
description: (0, utils_1.formatDescription)(arg.description),
|
|
597
624
|
})),
|
|
598
|
-
}
|
|
599
|
-
}
|
|
625
|
+
},
|
|
626
|
+
};
|
|
627
|
+
parent.fields.set(name, fieldContainer);
|
|
628
|
+
// Only entities will have an existing FieldSet
|
|
629
|
+
const existingFieldSet = factory.fieldSetsByParent.get(factory.parentTypeName);
|
|
630
|
+
if (existingFieldSet) {
|
|
631
|
+
// @requires should only be defined on a field whose parent is an entity
|
|
632
|
+
// If there is existingFieldSet, it's an entity
|
|
633
|
+
(0, utils_2.extractFieldSetValue)(name, existingFieldSet.requires, fieldContainer.directives.get(string_constants_1.REQUIRES));
|
|
634
|
+
// @provides only makes sense on entities, but the field can be encountered before the type definition
|
|
635
|
+
// When the FieldSet is evaluated, it will be checked whether the field is an entity.
|
|
636
|
+
(0, utils_2.extractFieldSetValue)(name, existingFieldSet.provides, fieldContainer.directives.get(string_constants_1.PROVIDES));
|
|
637
|
+
return;
|
|
638
|
+
}
|
|
639
|
+
const providesDirectives = fieldContainer.directives.get(string_constants_1.PROVIDES);
|
|
640
|
+
// Check whether the directive exists to avoid creating unnecessary fieldSet configurations
|
|
641
|
+
if (!providesDirectives) {
|
|
642
|
+
return;
|
|
643
|
+
}
|
|
644
|
+
const fieldSetContainer = (0, utils_3.getValueOrDefault)(factory.fieldSetsByParent, factory.parentTypeName, utils_2.newFieldSetContainer);
|
|
645
|
+
// @provides only makes sense on entities, but the field can be encountered before the type definition
|
|
646
|
+
// When the FieldSet is evaluated, it will be checked whether the field is an entity.
|
|
647
|
+
(0, utils_2.extractFieldSetValue)(name, fieldSetContainer.provides, providesDirectives);
|
|
600
648
|
},
|
|
601
649
|
leave() {
|
|
602
650
|
factory.isChild = false;
|
|
@@ -740,14 +788,9 @@ class NormalizationFactory {
|
|
|
740
788
|
if (!isEntity) {
|
|
741
789
|
return;
|
|
742
790
|
}
|
|
743
|
-
|
|
744
|
-
const
|
|
745
|
-
|
|
746
|
-
factory.errors.push(...errors);
|
|
747
|
-
}
|
|
748
|
-
if (!existingEntityKeyMap) {
|
|
749
|
-
factory.entityMap.set(name, entityKeyMap);
|
|
750
|
-
}
|
|
791
|
+
factory.entities.add(name);
|
|
792
|
+
const fieldSets = (0, utils_3.getValueOrDefault)(factory.fieldSetsByParent, name, utils_2.newFieldSetContainer);
|
|
793
|
+
factory.extractKeyFieldSets(node, fieldSets.keys);
|
|
751
794
|
},
|
|
752
795
|
leave() {
|
|
753
796
|
factory.isCurrentParentExtension = false;
|
|
@@ -911,6 +954,7 @@ class NormalizationFactory {
|
|
|
911
954
|
for (const directiveDefinition of constants_1.BASE_DIRECTIVE_DEFINITIONS) {
|
|
912
955
|
definitions.push(directiveDefinition);
|
|
913
956
|
}
|
|
957
|
+
definitions.push(constants_1.FIELD_SET_DEFINITION);
|
|
914
958
|
if (factory.isSubgraphVersionTwo) {
|
|
915
959
|
for (const directiveDefinition of constants_1.VERSION_TWO_DIRECTIVE_DEFINITIONS) {
|
|
916
960
|
definitions.push(directiveDefinition);
|
|
@@ -923,30 +967,22 @@ class NormalizationFactory {
|
|
|
923
967
|
if (this.schemaDefinition.operationTypes.size > 0) {
|
|
924
968
|
definitions.push((0, utils_2.schemaContainerToNode)(this, this.schemaDefinition));
|
|
925
969
|
}
|
|
926
|
-
// configurationDataMap is map of ConfigurationData per type name.
|
|
927
|
-
// It is an Intermediate configuration object that will be converted to an engine configuration in the router
|
|
928
|
-
const configurationDataMap = new Map();
|
|
929
970
|
const validExtensionOrphans = new Set();
|
|
930
971
|
const parentsToIgnore = new Set();
|
|
931
972
|
for (const [extensionTypeName, extensionContainer] of this.extensions) {
|
|
932
|
-
const
|
|
973
|
+
const isEntity = this.entities.has(extensionTypeName);
|
|
933
974
|
const configurationData = {
|
|
934
975
|
fieldNames: new Set(),
|
|
935
|
-
isRootNode:
|
|
976
|
+
isRootNode: isEntity,
|
|
936
977
|
typeName: extensionTypeName,
|
|
937
978
|
};
|
|
938
|
-
|
|
939
|
-
configurationData.keys = [...entity.keys()].map((selectionSet) => ({
|
|
940
|
-
fieldName: '', selectionSet,
|
|
941
|
-
}));
|
|
942
|
-
}
|
|
979
|
+
this.configurationDataMap.set(extensionTypeName, configurationData);
|
|
943
980
|
if (extensionContainer.kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION) {
|
|
944
981
|
if (this.operationTypeNames.has(extensionTypeName)) {
|
|
945
982
|
extensionContainer.fields.delete(string_constants_1.SERVICE_FIELD);
|
|
946
983
|
extensionContainer.fields.delete(string_constants_1.ENTITIES_FIELD);
|
|
947
984
|
}
|
|
948
|
-
(0,
|
|
949
|
-
configurationDataMap.set(extensionTypeName, configurationData);
|
|
985
|
+
(0, utils_2.addNonExternalFieldsToSet)(extensionContainer.fields, configurationData.fieldNames);
|
|
950
986
|
}
|
|
951
987
|
const baseType = this.parents.get(extensionTypeName);
|
|
952
988
|
if (!baseType) {
|
|
@@ -954,7 +990,6 @@ class NormalizationFactory {
|
|
|
954
990
|
this.errors.push((0, errors_1.noBaseTypeExtensionError)(extensionTypeName));
|
|
955
991
|
}
|
|
956
992
|
else {
|
|
957
|
-
(0, utils_2.validateEntityKeys)(this, extensionTypeName, true);
|
|
958
993
|
this.validateInterfaceImplementations(extensionContainer);
|
|
959
994
|
validExtensionOrphans.add(extensionTypeName);
|
|
960
995
|
definitions.push((0, utils_2.objectLikeContainerToNode)(this, extensionContainer));
|
|
@@ -1006,12 +1041,12 @@ class NormalizationFactory {
|
|
|
1006
1041
|
continue;
|
|
1007
1042
|
}
|
|
1008
1043
|
baseType.fields.set(fieldName, fieldContainer);
|
|
1009
|
-
|
|
1044
|
+
if (!fieldContainer.arguments.has(string_constants_1.EXTERNAL)) {
|
|
1045
|
+
configurationData.fieldNames.add(fieldName);
|
|
1046
|
+
}
|
|
1010
1047
|
}
|
|
1011
|
-
(0, utils_2.validateEntityKeys)(this, extensionTypeName);
|
|
1012
1048
|
this.mergeUniqueInterfaces(objectLikeExtension.interfaces, baseType.interfaces, extensionTypeName);
|
|
1013
1049
|
this.validateInterfaceImplementations(baseType);
|
|
1014
|
-
configurationDataMap.set(extensionTypeName, configurationData);
|
|
1015
1050
|
definitions.push((0, utils_2.objectLikeContainerToNode)(this, baseType, objectLikeExtension));
|
|
1016
1051
|
break;
|
|
1017
1052
|
case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
|
|
@@ -1041,13 +1076,12 @@ class NormalizationFactory {
|
|
|
1041
1076
|
case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
|
|
1042
1077
|
// intentional fallthrough
|
|
1043
1078
|
case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
|
|
1044
|
-
const
|
|
1079
|
+
const isEntity = this.entities.has(parentTypeName);
|
|
1045
1080
|
if (this.operationTypeNames.has(parentTypeName)) {
|
|
1046
1081
|
parentContainer.fields.delete(string_constants_1.SERVICE_FIELD);
|
|
1047
1082
|
parentContainer.fields.delete(string_constants_1.ENTITIES_FIELD);
|
|
1048
1083
|
}
|
|
1049
1084
|
if (this.parentsWithChildArguments.has(parentTypeName)) {
|
|
1050
|
-
const parentContainer = (0, utils_3.getOrThrowError)(this.parents, parentTypeName, string_constants_1.PARENTS);
|
|
1051
1085
|
if (parentContainer.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION
|
|
1052
1086
|
&& parentContainer.kind !== graphql_1.Kind.INTERFACE_TYPE_DEFINITION) {
|
|
1053
1087
|
continue;
|
|
@@ -1059,18 +1093,12 @@ class NormalizationFactory {
|
|
|
1059
1093
|
}
|
|
1060
1094
|
const configurationData = {
|
|
1061
1095
|
fieldNames: new Set(),
|
|
1062
|
-
isRootNode:
|
|
1096
|
+
isRootNode: isEntity,
|
|
1063
1097
|
typeName: parentTypeName,
|
|
1064
1098
|
};
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
fieldName: '', selectionSet,
|
|
1068
|
-
}));
|
|
1069
|
-
}
|
|
1070
|
-
(0, utils_3.addIterableValuesToSet)(parentContainer.fields.keys(), configurationData.fieldNames);
|
|
1071
|
-
(0, utils_2.validateEntityKeys)(this, parentTypeName);
|
|
1099
|
+
this.configurationDataMap.set(parentTypeName, configurationData);
|
|
1100
|
+
(0, utils_2.addNonExternalFieldsToSet)(parentContainer.fields, configurationData.fieldNames);
|
|
1072
1101
|
this.validateInterfaceImplementations(parentContainer);
|
|
1073
|
-
configurationDataMap.set(parentTypeName, configurationData);
|
|
1074
1102
|
definitions.push((0, utils_2.objectLikeContainerToNode)(this, parentContainer));
|
|
1075
1103
|
break;
|
|
1076
1104
|
case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
|
|
@@ -1111,7 +1139,7 @@ class NormalizationFactory {
|
|
|
1111
1139
|
if (!object && !extension) {
|
|
1112
1140
|
continue;
|
|
1113
1141
|
}
|
|
1114
|
-
const rootNode = configurationDataMap.get(operationTypeName);
|
|
1142
|
+
const rootNode = this.configurationDataMap.get(operationTypeName);
|
|
1115
1143
|
if (rootNode) {
|
|
1116
1144
|
rootNode.isRootNode = true;
|
|
1117
1145
|
rootNode.typeName = defaultTypeName;
|
|
@@ -1140,7 +1168,7 @@ class NormalizationFactory {
|
|
|
1140
1168
|
}
|
|
1141
1169
|
}
|
|
1142
1170
|
for (const referencedTypeName of this.referencedTypeNames) {
|
|
1143
|
-
if (this.parents.has(referencedTypeName) || this.
|
|
1171
|
+
if (this.parents.has(referencedTypeName) || this.entities.has(referencedTypeName)) {
|
|
1144
1172
|
continue;
|
|
1145
1173
|
}
|
|
1146
1174
|
const extension = this.extensions.get(referencedTypeName);
|
|
@@ -1148,6 +1176,16 @@ class NormalizationFactory {
|
|
|
1148
1176
|
this.errors.push((0, errors_1.undefinedTypeError)(referencedTypeName));
|
|
1149
1177
|
}
|
|
1150
1178
|
}
|
|
1179
|
+
for (const [parentTypeName, fieldSets] of this.fieldSetsByParent) {
|
|
1180
|
+
const parentContainer = this.parents.get(parentTypeName)
|
|
1181
|
+
|| this.extensions.get(parentTypeName);
|
|
1182
|
+
if (!parentContainer
|
|
1183
|
+
|| (parentContainer.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION && parentContainer.kind != graphql_1.Kind.OBJECT_TYPE_EXTENSION)) {
|
|
1184
|
+
this.errors.push((0, errors_1.undefinedObjectParentError)(parentTypeName));
|
|
1185
|
+
continue;
|
|
1186
|
+
}
|
|
1187
|
+
(0, utils_2.validateDirectivesWithFieldSet)(this, parentContainer, fieldSets);
|
|
1188
|
+
}
|
|
1151
1189
|
if (this.errors.length > 0) {
|
|
1152
1190
|
return { errors: this.errors };
|
|
1153
1191
|
}
|
|
@@ -1157,7 +1195,9 @@ class NormalizationFactory {
|
|
|
1157
1195
|
};
|
|
1158
1196
|
return {
|
|
1159
1197
|
normalizationResult: {
|
|
1160
|
-
configurationDataMap
|
|
1198
|
+
// configurationDataMap is map of ConfigurationData per type name.
|
|
1199
|
+
// It is an Intermediate configuration object that will be converted to an engine configuration in the router
|
|
1200
|
+
configurationDataMap: this.configurationDataMap,
|
|
1161
1201
|
isVersionTwo: this.isSubgraphVersionTwo,
|
|
1162
1202
|
keyFieldsByParentTypeName: this.keyFieldsByParentTypeName,
|
|
1163
1203
|
operationTypes: this.operationTypeNames,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalization-factory.js","sourceRoot":"","sources":["../../src/normalization/normalization-factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"normalization-factory.js","sourceRoot":"","sources":["../../src/normalization/normalization-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConstArgumentNode, ConstDirectiveNode, DirectiveDefinitionNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, FieldDefinitionNode, InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeDefinitionNode, OperationTypeNode, ScalarTypeDefinitionNode, SchemaDefinitionNode, StringValueNode, UnionTypeDefinitionNode } from 'graphql';
|
|
1
|
+
import { ConstArgumentNode, ConstDirectiveNode, DirectiveDefinitionNode, DocumentNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, FieldDefinitionNode, InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeDefinitionNode, OperationTypeNode, ScalarTypeDefinitionNode, SchemaDefinitionNode, StringValueNode, UnionTypeDefinitionNode } from 'graphql';
|
|
2
2
|
import { NormalizationFactory } from './normalization-factory';
|
|
3
3
|
export type EnumContainer = {
|
|
4
4
|
description?: StringValueNode;
|
|
@@ -77,6 +77,12 @@ export type EnumExtensionContainer = {
|
|
|
77
77
|
name: NameNode;
|
|
78
78
|
values: Map<string, EnumValueContainer>;
|
|
79
79
|
};
|
|
80
|
+
export type FieldSetContainer = {
|
|
81
|
+
keys: Set<string>;
|
|
82
|
+
provides: Map<string, string>;
|
|
83
|
+
requires: Map<string, string>;
|
|
84
|
+
};
|
|
85
|
+
export declare function newFieldSetContainer(): FieldSetContainer;
|
|
80
86
|
export type InputObjectExtensionContainer = {
|
|
81
87
|
directives: Map<string, ConstDirectiveNode[]>;
|
|
82
88
|
fields: Map<string, InputValueContainer>;
|
|
@@ -120,10 +126,13 @@ export declare function scalarContainerToNode(factory: NormalizationFactory, bas
|
|
|
120
126
|
export declare function schemaContainerToNode(factory: NormalizationFactory, baseSchema: SchemaContainer): SchemaDefinitionNode;
|
|
121
127
|
export declare function unionContainerToNode(factory: NormalizationFactory, baseUnion: UnionContainer, unionExtension?: UnionExtensionContainer): UnionTypeDefinitionNode;
|
|
122
128
|
export declare function areNodeKindAndDirectiveLocationCompatible(kind: Kind, directiveDefinitionNode: DirectiveDefinitionNode): boolean;
|
|
123
|
-
export declare function validateEntityKeys(factory: NormalizationFactory, objectTypeName: string, isExtension?: boolean): void;
|
|
124
129
|
export declare function getDirectiveDefinitionArgumentSets(args: readonly InputValueDefinitionNode[], allArguments: Set<string>, requiredArguments: Set<string>): void;
|
|
125
130
|
export declare function getDefinedArgumentsForDirective(args: readonly ConstArgumentNode[], allArguments: Set<string>, directiveName: string, hostPath: string, errorMessages: string[]): Set<string>;
|
|
126
131
|
export type InputValidationContainer = {
|
|
127
132
|
hasUnhandledError: boolean;
|
|
128
133
|
typeString: string;
|
|
129
134
|
};
|
|
135
|
+
export declare function addNonExternalFieldsToSet(fields: Map<string, FieldContainer>, fieldNames: Set<string>): void;
|
|
136
|
+
export declare function extractFieldSetValue(name: string, map: Map<string, string>, directives?: ConstDirectiveNode[]): void;
|
|
137
|
+
export declare function getNormalizedFieldSet(documentNode: DocumentNode): string;
|
|
138
|
+
export declare function validateDirectivesWithFieldSet(factory: NormalizationFactory, parentContainer: ObjectContainer | ObjectExtensionContainer, fieldSetContainer: FieldSetContainer): void;
|