@wundergraph/composition 0.5.3 → 0.6.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/ast.d.ts +21 -3
- package/dist/ast/ast.js +24 -11
- package/dist/ast/ast.js.map +1 -1
- package/dist/ast/utils.d.ts +17 -103
- package/dist/ast/utils.js +158 -16
- package/dist/ast/utils.js.map +1 -1
- package/dist/errors/errors.d.ts +17 -4
- package/dist/errors/errors.js +101 -22
- package/dist/errors/errors.js.map +1 -1
- package/dist/federation/federation-factory.d.ts +38 -25
- package/dist/federation/federation-factory.js +736 -461
- package/dist/federation/federation-factory.js.map +1 -1
- package/dist/federation/utils.d.ts +138 -0
- package/dist/federation/utils.js +23 -0
- package/dist/federation/utils.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/normalization/normalization-factory.d.ts +12 -3
- package/dist/normalization/normalization-factory.js +235 -75
- package/dist/normalization/normalization-factory.js.map +1 -1
- package/dist/normalization/utils.d.ts +4 -0
- package/dist/normalization/utils.js +24 -5
- package/dist/normalization/utils.js.map +1 -1
- package/dist/subgraph/field-configuration.d.ts +12 -1
- package/dist/subgraph/subgraph.d.ts +3 -2
- package/dist/subgraph/subgraph.js +50 -86
- package/dist/subgraph/subgraph.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/constants.js +93 -10
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/string-constants.d.ts +19 -2
- package/dist/utils/string-constants.js +21 -3
- package/dist/utils/string-constants.js.map +1 -1
- package/dist/utils/utils.d.ts +16 -3
- package/dist/utils/utils.js +68 -23
- package/dist/utils/utils.js.map +1 -1
- package/package.json +4 -3
- package/dist/federation/federation-result.d.ts +0 -6
- package/dist/federation/federation-result.js +0 -3
- package/dist/federation/federation-result.js.map +0 -1
|
@@ -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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"}
|
|
@@ -123,3 +123,7 @@ export declare function areNodeKindAndDirectiveLocationCompatible(kind: Kind, di
|
|
|
123
123
|
export declare function validateEntityKeys(factory: NormalizationFactory, objectTypeName: string, isExtension?: boolean): void;
|
|
124
124
|
export declare function getDirectiveDefinitionArgumentSets(args: readonly InputValueDefinitionNode[], allArguments: Set<string>, requiredArguments: Set<string>): void;
|
|
125
125
|
export declare function getDefinedArgumentsForDirective(args: readonly ConstArgumentNode[], allArguments: Set<string>, directiveName: string, hostPath: string, errorMessages: string[]): Set<string>;
|
|
126
|
+
export type InputValidationContainer = {
|
|
127
|
+
hasUnhandledError: boolean;
|
|
128
|
+
typeString: string;
|
|
129
|
+
};
|
|
@@ -141,6 +141,11 @@ function areNodeKindAndDirectiveLocationCompatible(kind, directiveDefinitionNode
|
|
|
141
141
|
return true;
|
|
142
142
|
}
|
|
143
143
|
break;
|
|
144
|
+
case string_constants_1.FRAGMENT_SPREAD_UPPER:
|
|
145
|
+
if (kind === graphql_1.Kind.FRAGMENT_SPREAD) {
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
144
149
|
case string_constants_1.SCALAR_UPPER:
|
|
145
150
|
if (kind === graphql_1.Kind.SCALAR_TYPE_DEFINITION || kind === graphql_1.Kind.SCALAR_TYPE_EXTENSION) {
|
|
146
151
|
return true;
|
|
@@ -197,21 +202,34 @@ function validateEntityKeys(factory, objectTypeName, isExtension = false) {
|
|
|
197
202
|
}
|
|
198
203
|
exports.validateEntityKeys = validateEntityKeys;
|
|
199
204
|
function validateEntityKey(factory, entityKey, object, objectTypeName, errorMessages) {
|
|
205
|
+
const keyFields = new Set();
|
|
200
206
|
for (const fieldName of entityKey.siblings) {
|
|
201
207
|
const field = object.fields.get(fieldName);
|
|
202
208
|
if (!field) {
|
|
203
209
|
errorMessages.push((0, errors_1.undefinedEntityKeyErrorMessage)(fieldName, objectTypeName));
|
|
204
210
|
continue;
|
|
205
211
|
}
|
|
212
|
+
// Entity keys are always shareable
|
|
213
|
+
keyFields.add(fieldName);
|
|
206
214
|
if (entityKey.nestedKeys?.some((nestedKey) => nestedKey.parent === fieldName)) {
|
|
207
215
|
continue;
|
|
208
216
|
}
|
|
209
217
|
const fieldPath = `${objectTypeName}.${fieldName}`;
|
|
210
218
|
const fieldTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, field.node.type);
|
|
211
|
-
|
|
219
|
+
const parentContainer = factory.parents.get(fieldTypeName);
|
|
220
|
+
if (parentContainer && parentContainer.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION) {
|
|
212
221
|
errorMessages.push((0, errors_1.objectInCompositeKeyWithoutSelectionsErrorMessage)(fieldName, fieldTypeName));
|
|
213
222
|
}
|
|
214
223
|
}
|
|
224
|
+
if (keyFields.size > 0) {
|
|
225
|
+
const entityKeyParent = factory.keyFieldsByParentTypeName.get(objectTypeName);
|
|
226
|
+
if (entityKeyParent) {
|
|
227
|
+
(0, utils_1.addIterableValuesToSet)(keyFields, entityKeyParent);
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
factory.keyFieldsByParentTypeName.set(objectTypeName, keyFields);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
215
233
|
if (errorMessages.length > 0 || !entityKey.nestedKeys) {
|
|
216
234
|
return;
|
|
217
235
|
}
|
|
@@ -226,12 +244,12 @@ function validateEntityKey(factory, entityKey, object, objectTypeName, errorMess
|
|
|
226
244
|
}
|
|
227
245
|
}
|
|
228
246
|
function validateBaseObjectEntityKey(factory, objectTypeName, entityKey, errorMessages) {
|
|
229
|
-
const object = factory.parents.get(objectTypeName);
|
|
247
|
+
const object = factory.parents.get(objectTypeName) || factory.extensions.get(objectTypeName);
|
|
230
248
|
if (!object) {
|
|
231
249
|
throw (0, errors_1.undefinedParentFatalError)(objectTypeName);
|
|
232
250
|
}
|
|
233
|
-
if (object.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION) {
|
|
234
|
-
errorMessages.push((0, errors_1.unexpectedParentKindErrorMessage)(objectTypeName, object
|
|
251
|
+
if (object.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION && object.kind !== graphql_1.Kind.OBJECT_TYPE_EXTENSION) {
|
|
252
|
+
errorMessages.push((0, errors_1.unexpectedParentKindErrorMessage)(objectTypeName, 'object or object extension', (0, utils_1.kindToTypeString)(object.kind)));
|
|
235
253
|
return;
|
|
236
254
|
}
|
|
237
255
|
validateEntityKey(factory, entityKey, object, objectTypeName, errorMessages);
|
|
@@ -251,7 +269,8 @@ function getDirectiveDefinitionArgumentSets(args, allArguments, requiredArgument
|
|
|
251
269
|
for (const argument of args) {
|
|
252
270
|
const argumentName = argument.name.value;
|
|
253
271
|
allArguments.add(argumentName);
|
|
254
|
-
|
|
272
|
+
// If the definition defines a default argument, it's not necessary to include it
|
|
273
|
+
if (argument.type.kind === graphql_1.Kind.NON_NULL_TYPE && !argument.defaultValue) {
|
|
255
274
|
requiredArguments.add(argumentName);
|
|
256
275
|
}
|
|
257
276
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/normalization/utils.ts"],"names":[],"mappings":";;;AAAA,qCAqBiB;AACjB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/normalization/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
export type ConfigurationDataMap = Map<string, ConfigurationData>;
|
|
2
|
+
export type RequiredFieldConfiguration = {
|
|
3
|
+
fieldName: string;
|
|
4
|
+
selectionSet: string;
|
|
5
|
+
};
|
|
2
6
|
export type ConfigurationData = {
|
|
3
7
|
fieldNames: Set<string>;
|
|
4
8
|
isRootNode: boolean;
|
|
5
|
-
|
|
9
|
+
provides?: RequiredFieldConfiguration[];
|
|
10
|
+
keys?: RequiredFieldConfiguration[];
|
|
11
|
+
requires?: RequiredFieldConfiguration[];
|
|
12
|
+
typeName: string;
|
|
13
|
+
};
|
|
14
|
+
export type ArgumentConfigurationData = {
|
|
15
|
+
argumentNames: string[];
|
|
16
|
+
fieldName: string;
|
|
6
17
|
typeName: string;
|
|
7
18
|
};
|
|
@@ -8,11 +8,12 @@ export type Subgraph = {
|
|
|
8
8
|
export type InternalSubgraph = {
|
|
9
9
|
definitions: DocumentNode;
|
|
10
10
|
isVersionTwo: boolean;
|
|
11
|
+
keyFieldsByParentTypeName: Map<string, Set<string>>;
|
|
11
12
|
name: string;
|
|
12
13
|
operationTypes: Map<string, OperationTypeNode>;
|
|
13
14
|
url: string;
|
|
14
15
|
};
|
|
15
16
|
export declare function validateSubgraphName(subgraphName: string, subgraphNames: Set<string>, nonUniqueSubgraphNames: Set<string>): void;
|
|
16
|
-
export declare function
|
|
17
|
-
export declare function
|
|
17
|
+
export declare function walkSubgraphToCollectObjectLikesAndDirectiveDefinitions(factory: FederationFactory, subgraph: InternalSubgraph): void;
|
|
18
|
+
export declare function walkSubgraphToCollectFields(factory: FederationFactory, subgraph: Subgraph): void;
|
|
18
19
|
export declare function walkSubgraphToFederate(subgraph: DocumentNode, factory: FederationFactory): void;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.walkSubgraphToFederate = exports.
|
|
3
|
+
exports.walkSubgraphToFederate = exports.walkSubgraphToCollectFields = exports.walkSubgraphToCollectObjectLikesAndDirectiveDefinitions = exports.validateSubgraphName = void 0;
|
|
4
4
|
const graphql_1 = require("graphql");
|
|
5
5
|
const utils_1 = require("../ast/utils");
|
|
6
6
|
const type_merging_1 = require("../type-merging/type-merging");
|
|
7
7
|
const utils_2 = require("../utils/utils");
|
|
8
|
-
const merge_1 = require("@graphql-tools/merge");
|
|
9
8
|
const string_constants_1 = require("../utils/string-constants");
|
|
10
9
|
function validateSubgraphName(subgraphName, subgraphNames, nonUniqueSubgraphNames) {
|
|
11
10
|
if (!subgraphNames.has(subgraphName)) {
|
|
@@ -16,8 +15,13 @@ function validateSubgraphName(subgraphName, subgraphNames, nonUniqueSubgraphName
|
|
|
16
15
|
}
|
|
17
16
|
exports.validateSubgraphName = validateSubgraphName;
|
|
18
17
|
// Places the object-like nodes into the multigraph including the concrete types for abstract types
|
|
19
|
-
function
|
|
18
|
+
function walkSubgraphToCollectObjectLikesAndDirectiveDefinitions(factory, subgraph) {
|
|
20
19
|
subgraph.definitions = (0, graphql_1.visit)(subgraph.definitions, {
|
|
20
|
+
DirectiveDefinition: {
|
|
21
|
+
enter(node) {
|
|
22
|
+
factory.upsertDirectiveNode(node);
|
|
23
|
+
},
|
|
24
|
+
},
|
|
21
25
|
InterfaceTypeDefinition: {
|
|
22
26
|
enter(node) {
|
|
23
27
|
factory.upsertParentNode(node);
|
|
@@ -26,12 +30,10 @@ function walkSubgraphToCollectObjects(factory, subgraph) {
|
|
|
26
30
|
ObjectTypeDefinition: {
|
|
27
31
|
enter(node) {
|
|
28
32
|
const name = node.name.value;
|
|
29
|
-
if (name === string_constants_1.SERVICE) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
33
|
const operationType = subgraph.operationTypes.get(name);
|
|
33
|
-
const parentTypeName = operationType
|
|
34
|
-
|
|
34
|
+
const parentTypeName = operationType
|
|
35
|
+
? (0, utils_2.getOrThrowError)(utils_1.operationTypeNodeToDefaultType, operationType, string_constants_1.OPERATION_TO_DEFAULT) : name;
|
|
36
|
+
(0, utils_1.addConcreteTypesForImplementedInterfaces)(node, factory.abstractToConcreteTypeNames);
|
|
35
37
|
if (!factory.graph.hasNode(parentTypeName)) {
|
|
36
38
|
factory.graph.addNode(parentTypeName);
|
|
37
39
|
}
|
|
@@ -51,8 +53,9 @@ function walkSubgraphToCollectObjects(factory, subgraph) {
|
|
|
51
53
|
enter(node) {
|
|
52
54
|
const name = node.name.value;
|
|
53
55
|
const operationType = subgraph.operationTypes.get(name);
|
|
54
|
-
const parentTypeName = operationType
|
|
55
|
-
|
|
56
|
+
const parentTypeName = operationType
|
|
57
|
+
? (0, utils_2.getOrThrowError)(utils_1.operationTypeNodeToDefaultType, operationType, string_constants_1.OPERATION_TO_DEFAULT) : name;
|
|
58
|
+
(0, utils_1.addConcreteTypesForImplementedInterfaces)(node, factory.abstractToConcreteTypeNames);
|
|
56
59
|
if (!factory.graph.hasNode(parentTypeName)) {
|
|
57
60
|
factory.graph.addNode(parentTypeName);
|
|
58
61
|
}
|
|
@@ -71,20 +74,17 @@ function walkSubgraphToCollectObjects(factory, subgraph) {
|
|
|
71
74
|
UnionTypeDefinition: {
|
|
72
75
|
enter(node) {
|
|
73
76
|
factory.upsertParentNode(node);
|
|
74
|
-
|
|
77
|
+
(0, utils_1.addConcreteTypesForUnion)(node, factory.abstractToConcreteTypeNames);
|
|
75
78
|
},
|
|
76
79
|
},
|
|
77
80
|
});
|
|
78
81
|
}
|
|
79
|
-
exports.
|
|
80
|
-
function
|
|
82
|
+
exports.walkSubgraphToCollectObjectLikesAndDirectiveDefinitions = walkSubgraphToCollectObjectLikesAndDirectiveDefinitions;
|
|
83
|
+
function walkSubgraphToCollectFields(factory, subgraph) {
|
|
81
84
|
let isCurrentParentRootType = false;
|
|
82
85
|
(0, graphql_1.visit)(subgraph.definitions, {
|
|
83
86
|
ObjectTypeDefinition: {
|
|
84
87
|
enter(node) {
|
|
85
|
-
if (node.name.value === string_constants_1.SERVICE) {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
88
|
isCurrentParentRootType = factory.isObjectRootType(node);
|
|
89
89
|
factory.isCurrentParentEntity = (0, utils_1.isObjectLikeNodeEntity)(node);
|
|
90
90
|
factory.parentTypeName = node.name.value;
|
|
@@ -108,62 +108,10 @@ function walkSubgraphToCollectOperationsAndFields(factory, subgraph) {
|
|
|
108
108
|
FieldDefinition: {
|
|
109
109
|
enter(node) {
|
|
110
110
|
const fieldName = node.name.value;
|
|
111
|
-
if (isCurrentParentRootType) {
|
|
112
|
-
if (fieldName === string_constants_1.SERVICE_FIELD || fieldName === string_constants_1.ENTITIES_FIELD) {
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
const fieldPath = `${factory.parentTypeName}.${fieldName}`;
|
|
117
|
-
const fieldRootTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, node.type);
|
|
118
|
-
// If a node exists in the multigraph, it's a concrete object type
|
|
119
|
-
// Only add the edge if it hasn't already been added through another subgraph
|
|
120
|
-
if (factory.graph.hasNode(fieldRootTypeName) && !factory.graphEdges.has(fieldPath)) {
|
|
121
|
-
factory.graph.addEdge(factory.parentTypeName, fieldRootTypeName, { fieldName });
|
|
122
|
-
factory.graphEdges.add(fieldPath);
|
|
123
|
-
}
|
|
124
111
|
if (factory.isCurrentParentEntity) {
|
|
125
|
-
const entity = (0, utils_2.getOrThrowError)(factory.
|
|
112
|
+
const entity = (0, utils_2.getOrThrowError)(factory.entities, factory.parentTypeName, string_constants_1.ENTITIES);
|
|
126
113
|
entity.fields.add(fieldName);
|
|
127
114
|
}
|
|
128
|
-
if (!isCurrentParentRootType) {
|
|
129
|
-
// If the response type is a concrete field or the path has already been added, there's nothing further to do
|
|
130
|
-
if (factory.graph.hasNode(fieldRootTypeName) || factory.graphEdges.has(fieldPath)) {
|
|
131
|
-
return false;
|
|
132
|
-
}
|
|
133
|
-
// If the field is an abstract response type, an edge for each concrete response type must be added
|
|
134
|
-
factory.graphEdges.add(fieldPath);
|
|
135
|
-
const concreteTypeNames = factory.abstractToConcreteTypeNames.get(fieldRootTypeName);
|
|
136
|
-
// It is possible for an interface to have no implementers
|
|
137
|
-
if (!concreteTypeNames) {
|
|
138
|
-
return false;
|
|
139
|
-
}
|
|
140
|
-
for (const concreteTypeName of concreteTypeNames) {
|
|
141
|
-
factory.graph.addEdge(factory.parentTypeName, concreteTypeName, {
|
|
142
|
-
fieldName,
|
|
143
|
-
inlineFragment: (0, utils_1.getInlineFragmentString)(concreteTypeName),
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
// If the operation returns a concrete type, upsert the field
|
|
149
|
-
// This also records the appearance of this field in the current subgraph
|
|
150
|
-
if (factory.graph.hasNode(fieldRootTypeName)) {
|
|
151
|
-
factory.upsertConcreteObjectLikeOperationFieldNode(fieldName, fieldRootTypeName, fieldPath, (0, merge_1.printTypeNode)(node.type));
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
|
-
const parentContainer = factory.parentMap.get(fieldRootTypeName);
|
|
155
|
-
// If the field is not an abstract response type, it is not an object-like, so return
|
|
156
|
-
if (!parentContainer || !(0, utils_1.isKindAbstract)(parentContainer.kind)) {
|
|
157
|
-
return false;
|
|
158
|
-
}
|
|
159
|
-
// At his point, it is known that this field is an abstract response type on an operation
|
|
160
|
-
const concreteTypes = factory.abstractToConcreteTypeNames.get(fieldRootTypeName);
|
|
161
|
-
// It is possible for an interface to have no implementers
|
|
162
|
-
if (!concreteTypes) {
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
// Upsert response types and add edges from the operation to each possible concrete type for the abstract field
|
|
166
|
-
factory.upsertAbstractObjectLikeOperationFieldNode(fieldName, fieldRootTypeName, fieldPath, (0, merge_1.printTypeNode)(node.type), concreteTypes);
|
|
167
115
|
return false;
|
|
168
116
|
},
|
|
169
117
|
},
|
|
@@ -175,17 +123,12 @@ function walkSubgraphToCollectOperationsAndFields(factory, subgraph) {
|
|
|
175
123
|
},
|
|
176
124
|
});
|
|
177
125
|
}
|
|
178
|
-
exports.
|
|
126
|
+
exports.walkSubgraphToCollectFields = walkSubgraphToCollectFields;
|
|
179
127
|
function walkSubgraphToFederate(subgraph, factory) {
|
|
180
128
|
(0, graphql_1.visit)(subgraph, {
|
|
181
|
-
DirectiveDefinition: {
|
|
182
|
-
enter(node) {
|
|
183
|
-
factory.directiveDefinitions.set(node.name.value, node); // TODO
|
|
184
|
-
},
|
|
185
|
-
},
|
|
186
129
|
Directive: {
|
|
187
130
|
enter() {
|
|
188
|
-
return false;
|
|
131
|
+
return false;
|
|
189
132
|
},
|
|
190
133
|
},
|
|
191
134
|
EnumTypeDefinition: {
|
|
@@ -208,14 +151,34 @@ function walkSubgraphToFederate(subgraph, factory) {
|
|
|
208
151
|
},
|
|
209
152
|
FieldDefinition: {
|
|
210
153
|
enter(node) {
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
154
|
+
const fieldName = node.name.value;
|
|
155
|
+
const fieldPath = `${factory.parentTypeName}.${fieldName}`;
|
|
156
|
+
const fieldNamedTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, node.type);
|
|
157
|
+
if (factory.isParentRootType && (fieldName === string_constants_1.SERVICE_FIELD || fieldName === string_constants_1.ENTITIES_FIELD)) {
|
|
158
|
+
return false;
|
|
216
159
|
}
|
|
217
|
-
factory.childName =
|
|
160
|
+
factory.childName = fieldName;
|
|
218
161
|
factory.upsertFieldNode(node);
|
|
162
|
+
if (!factory.graph.hasNode(factory.parentTypeName) || factory.graphEdges.has(fieldPath)) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
factory.graphEdges.add(fieldPath);
|
|
166
|
+
// If the parent node is never an entity, add the child edge
|
|
167
|
+
// Otherwise, only add the child edge if the child is a field on a subgraph where the object is an entity
|
|
168
|
+
const entity = factory.entities.get(factory.parentTypeName);
|
|
169
|
+
if (entity && !entity.fields.has(fieldName)) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
const concreteTypeNames = factory.abstractToConcreteTypeNames.get(fieldNamedTypeName);
|
|
173
|
+
if (concreteTypeNames) {
|
|
174
|
+
for (const concreteTypeName of concreteTypeNames) {
|
|
175
|
+
factory.graph.addEdge(factory.parentTypeName, concreteTypeName);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (!factory.graph.hasNode(fieldNamedTypeName)) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
factory.graph.addEdge(factory.parentTypeName, fieldNamedTypeName);
|
|
219
182
|
},
|
|
220
183
|
leave() {
|
|
221
184
|
factory.childName = '';
|
|
@@ -258,9 +221,7 @@ function walkSubgraphToFederate(subgraph, factory) {
|
|
|
258
221
|
},
|
|
259
222
|
ObjectTypeDefinition: {
|
|
260
223
|
enter(node) {
|
|
261
|
-
|
|
262
|
-
return false;
|
|
263
|
-
}
|
|
224
|
+
factory.areFieldsExternal = (0, utils_1.isNodeExternal)(node);
|
|
264
225
|
factory.areFieldsShareable = !factory.isCurrentSubgraphVersionTwo || (0, utils_1.isNodeShareable)(node);
|
|
265
226
|
factory.isCurrentParentEntity = (0, utils_1.isObjectLikeNodeEntity)(node);
|
|
266
227
|
factory.isParentRootType = factory.isObjectRootType(node);
|
|
@@ -268,6 +229,7 @@ function walkSubgraphToFederate(subgraph, factory) {
|
|
|
268
229
|
factory.upsertParentNode(node);
|
|
269
230
|
},
|
|
270
231
|
leave() {
|
|
232
|
+
factory.areFieldsExternal = false;
|
|
271
233
|
factory.areFieldsShareable = false;
|
|
272
234
|
factory.isCurrentParentEntity = false;
|
|
273
235
|
factory.isParentRootType = false;
|
|
@@ -277,14 +239,16 @@ function walkSubgraphToFederate(subgraph, factory) {
|
|
|
277
239
|
ObjectTypeExtension: {
|
|
278
240
|
enter(node) {
|
|
279
241
|
const name = node.name.value;
|
|
242
|
+
factory.areFieldsExternal = (0, utils_1.isNodeExternal)(node);
|
|
243
|
+
factory.areFieldsShareable = !factory.isCurrentSubgraphVersionTwo || (0, utils_1.isNodeShareable)(node);
|
|
280
244
|
factory.isCurrentParentExtensionType = true;
|
|
281
245
|
factory.isCurrentParentEntity = (0, utils_1.isObjectLikeNodeEntity)(node);
|
|
282
246
|
factory.parentTypeName = name;
|
|
283
|
-
factory.areFieldsShareable = !factory.isCurrentSubgraphVersionTwo || (0, utils_1.isNodeShareable)(node);
|
|
284
247
|
factory.isParentRootType = factory.isObjectRootType(node);
|
|
285
248
|
factory.upsertExtensionNode(node);
|
|
286
249
|
},
|
|
287
250
|
leave() {
|
|
251
|
+
factory.areFieldsExternal = false;
|
|
288
252
|
factory.areFieldsShareable = false;
|
|
289
253
|
factory.isCurrentParentEntity = false;
|
|
290
254
|
factory.isCurrentParentExtensionType = false;
|