@wundergraph/composition 0.18.0 → 0.18.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 +2 -9
- package/dist/ast/ast.js +4 -32
- package/dist/ast/ast.js.map +1 -1
- package/dist/ast/utils.d.ts +1 -2
- package/dist/ast/utils.js.map +1 -1
- package/dist/errors/errors.d.ts +6 -11
- package/dist/errors/errors.js +18 -29
- package/dist/errors/errors.js.map +1 -1
- package/dist/federation/federation-factory.d.ts +6 -6
- package/dist/federation/federation-factory.js +19 -18
- package/dist/federation/federation-factory.js.map +1 -1
- package/dist/federation/utils.d.ts +4 -4
- package/dist/federation/utils.js +2 -2
- package/dist/federation/utils.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/normalization/normalization-factory.d.ts +19 -26
- package/dist/normalization/normalization-factory.js +179 -994
- package/dist/normalization/normalization-factory.js.map +1 -1
- package/dist/normalization/utils.d.ts +6 -126
- package/dist/normalization/utils.js +71 -166
- package/dist/normalization/utils.js.map +1 -1
- package/dist/normalization/walkers.d.ts +5 -0
- package/dist/normalization/walkers.js +593 -0
- package/dist/normalization/walkers.js.map +1 -0
- package/dist/schema-building/ast.d.ts +104 -0
- package/dist/schema-building/ast.js +156 -0
- package/dist/schema-building/ast.js.map +1 -0
- package/dist/schema-building/type-definition-data.d.ts +108 -0
- package/dist/schema-building/type-definition-data.js +3 -0
- package/dist/schema-building/type-definition-data.js.map +1 -0
- package/dist/schema-building/type-extension-data.d.ts +45 -0
- package/dist/schema-building/type-extension-data.js +3 -0
- package/dist/schema-building/type-extension-data.js.map +1 -0
- package/dist/{type-merging → schema-building}/type-merging.js +5 -4
- package/dist/schema-building/type-merging.js.map +1 -0
- package/dist/schema-building/utils.d.ts +42 -0
- package/dist/schema-building/utils.js +600 -0
- package/dist/schema-building/utils.js.map +1 -0
- package/dist/subgraph/subgraph.d.ts +4 -5
- package/dist/subgraph/subgraph.js +2 -91
- package/dist/subgraph/subgraph.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/constants.d.ts +4 -2
- package/dist/utils/constants.js +383 -359
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/string-constants.d.ts +4 -0
- package/dist/utils/string-constants.js +6 -2
- package/dist/utils/string-constants.js.map +1 -1
- package/dist/utils/utils.d.ts +2 -4
- package/dist/utils/utils.js +4 -6
- package/dist/utils/utils.js.map +1 -1
- package/package.json +2 -2
- package/dist/type-merging/type-merging.js.map +0 -1
- /package/dist/{type-merging → schema-building}/type-merging.d.ts +0 -0
|
@@ -0,0 +1,600 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeInheritableDirectivesFromParentWithFieldsData = exports.getUnionNodeByData = exports.getSchemaNodeByData = exports.getScalarNodeByData = exports.getParentWithFieldsNodeByData = exports.getInputObjectNodeByData = exports.getEnumNodeByData = exports.extractImplementedInterfaceTypeNames = exports.convertKindForExtension = exports.isTypeNameRootType = exports.upsertUnionExtensionDataByNode = exports.upsertUnionDefinitionDataByNode = exports.extractUniqueUnionMembers = exports.upsertScalarExtensionDataByNode = exports.upsertScalarDefinitionDataByNode = exports.upsertObjectDefinitionDataByNode = exports.upsertInterfaceDefinitionDataByNode = exports.upsertInputValueDataByNode = exports.upsertInputObjectExtensionDataByNode = exports.upsertInputObjectDefinitionDataByNode = exports.upsertExtensionWithFieldsDataByNode = exports.upsertFieldDataByNode = exports.addInheritedDirectivesToFieldData = exports.upsertEnumValueDataByNode = exports.upsertEnumExtensionDataByNode = exports.upsertEnumDefinitionDataByNode = exports.upsertArgumentDataByNode = exports.extractArguments = exports.extractDirectives = exports.getDirectiveValidationErrors = exports.getDefinedArgumentsForDirective = exports.isNodeExternalOrShareable = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
const ast_1 = require("./ast");
|
|
6
|
+
const utils_1 = require("../ast/utils");
|
|
7
|
+
const errors_1 = require("../errors/errors");
|
|
8
|
+
const string_constants_1 = require("../utils/string-constants");
|
|
9
|
+
const type_merging_1 = require("./type-merging");
|
|
10
|
+
const utils_2 = require("../normalization/utils");
|
|
11
|
+
const utils_3 = require("../utils/utils");
|
|
12
|
+
const constants_1 = require("../utils/constants");
|
|
13
|
+
function isNodeExternalOrShareable(node, areAllFieldsShareable, directivesByDirectiveName) {
|
|
14
|
+
const result = {
|
|
15
|
+
isExternal: directivesByDirectiveName.has(string_constants_1.EXTERNAL),
|
|
16
|
+
isShareable: areAllFieldsShareable || directivesByDirectiveName.has(string_constants_1.SHAREABLE),
|
|
17
|
+
};
|
|
18
|
+
if (!node.directives?.length) {
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
for (const directiveNode of node.directives) {
|
|
22
|
+
const directiveName = directiveNode.name.value;
|
|
23
|
+
if (directiveName === string_constants_1.EXTERNAL) {
|
|
24
|
+
result.isExternal = true;
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (directiveName === string_constants_1.SHAREABLE) {
|
|
28
|
+
result.isShareable = true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
exports.isNodeExternalOrShareable = isNodeExternalOrShareable;
|
|
34
|
+
function getDefinedArgumentsForDirective(directiveNode, argumentTypeNodeByArgumentName, requiredArguments, hostPath, errorMessages) {
|
|
35
|
+
const directiveArguments = directiveNode.arguments || [];
|
|
36
|
+
const directiveName = directiveNode.name.value;
|
|
37
|
+
const definedArguments = new Set();
|
|
38
|
+
const handledDuplicateArguments = new Set();
|
|
39
|
+
for (const argument of directiveArguments) {
|
|
40
|
+
const argumentName = argument.name.value;
|
|
41
|
+
// If an argument is observed more than once, it is a duplication error.
|
|
42
|
+
// However, the error should only propagate once.
|
|
43
|
+
if (definedArguments.has(argumentName)) {
|
|
44
|
+
if (!handledDuplicateArguments.has(argumentName)) {
|
|
45
|
+
handledDuplicateArguments.add(argumentName);
|
|
46
|
+
errorMessages.push((0, errors_1.duplicateDirectiveArgumentDefinitionErrorMessage)(directiveName, hostPath, argumentName));
|
|
47
|
+
}
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const argumentTypeNode = argumentTypeNodeByArgumentName.get(argumentName);
|
|
51
|
+
if (!argumentTypeNode) {
|
|
52
|
+
errorMessages.push((0, errors_1.unexpectedDirectiveArgumentErrorMessage)(directiveName, argumentName));
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
// TODO validate argument values
|
|
56
|
+
// if (argumentTypeNode) {
|
|
57
|
+
// errorMessages.push(invalidDirectiveArgumentTypeErrorMessage(
|
|
58
|
+
// requiredArguments.has(directiveName), argumentName, argumentTypeNode, argument.value.kind),
|
|
59
|
+
// );
|
|
60
|
+
// }
|
|
61
|
+
definedArguments.add(argumentName);
|
|
62
|
+
}
|
|
63
|
+
return definedArguments;
|
|
64
|
+
}
|
|
65
|
+
exports.getDefinedArgumentsForDirective = getDefinedArgumentsForDirective;
|
|
66
|
+
function getDirectiveValidationErrors(directiveNode, hostKind, directivesByDirectiveName, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, hostPath, isArgument = false) {
|
|
67
|
+
const directiveName = directiveNode.name.value;
|
|
68
|
+
const directiveDefinition = directiveDefinitionByDirectiveName.get(directiveName) ||
|
|
69
|
+
constants_1.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.get(directiveName);
|
|
70
|
+
const errorMessages = [];
|
|
71
|
+
if (!directiveDefinition) {
|
|
72
|
+
errorMessages.push((0, errors_1.undefinedDirectiveErrorMessage)(directiveName, hostPath));
|
|
73
|
+
return errorMessages;
|
|
74
|
+
}
|
|
75
|
+
const argumentTypeNodeByArgumentName = new Map();
|
|
76
|
+
const requiredArguments = new Set();
|
|
77
|
+
(0, utils_2.getDirectiveDefinitionArgumentSets)(directiveDefinition.arguments || [], argumentTypeNodeByArgumentName, requiredArguments);
|
|
78
|
+
if (!(0, utils_2.areNodeKindAndDirectiveLocationCompatible)(hostKind, directiveDefinition, isArgument)) {
|
|
79
|
+
errorMessages.push((0, errors_1.invalidDirectiveLocationErrorMessage)(hostPath, isArgument ? graphql_1.Kind.ARGUMENT : hostKind, directiveName));
|
|
80
|
+
}
|
|
81
|
+
if (!directiveDefinition.repeatable && directivesByDirectiveName.get(directiveName)) {
|
|
82
|
+
const handledRepeatedDirectives = handledRepeatedDirectivesByHostPath.get(hostPath);
|
|
83
|
+
// Add the directive name to the existing set (if other invalid repeated directives exist) or a new set
|
|
84
|
+
// If the directive name exists as a value on the host path key, the repeatable error has been handled
|
|
85
|
+
if (!handledRepeatedDirectives) {
|
|
86
|
+
handledRepeatedDirectivesByHostPath.set(hostPath, new Set([directiveName]));
|
|
87
|
+
}
|
|
88
|
+
else if (!handledRepeatedDirectives.has(directiveName)) {
|
|
89
|
+
handledRepeatedDirectives.add(directiveName);
|
|
90
|
+
errorMessages.push((0, errors_1.invalidRepeatedDirectiveErrorMessage)(directiveName, hostPath));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!directiveDefinition.arguments?.length) {
|
|
94
|
+
if (directiveNode.arguments?.length) {
|
|
95
|
+
errorMessages.push((0, errors_1.unexpectedDirectiveArgumentsErrorMessage)(directiveNode, hostPath));
|
|
96
|
+
}
|
|
97
|
+
return errorMessages;
|
|
98
|
+
}
|
|
99
|
+
if (!directiveNode.arguments?.length) {
|
|
100
|
+
if (requiredArguments.size > 0) {
|
|
101
|
+
errorMessages.push((0, errors_1.undefinedRequiredArgumentsErrorMessage)(directiveName, hostPath, [...requiredArguments]));
|
|
102
|
+
}
|
|
103
|
+
return errorMessages;
|
|
104
|
+
}
|
|
105
|
+
const definedArguments = getDefinedArgumentsForDirective(directiveNode, argumentTypeNodeByArgumentName, requiredArguments, hostPath, errorMessages);
|
|
106
|
+
const missingRequiredArguments = (0, utils_3.getEntriesNotInHashSet)(requiredArguments, definedArguments);
|
|
107
|
+
if (missingRequiredArguments.length > 0) {
|
|
108
|
+
errorMessages.push((0, errors_1.undefinedRequiredArgumentsErrorMessage)(directiveName, hostPath, [...requiredArguments], missingRequiredArguments));
|
|
109
|
+
}
|
|
110
|
+
return errorMessages;
|
|
111
|
+
}
|
|
112
|
+
exports.getDirectiveValidationErrors = getDirectiveValidationErrors;
|
|
113
|
+
function extractDirectives(node, directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, hostPath, isArgument = false) {
|
|
114
|
+
if (!node.directives) {
|
|
115
|
+
return directivesByDirectiveName;
|
|
116
|
+
}
|
|
117
|
+
const entityKeys = new Set();
|
|
118
|
+
for (const directiveNode of node.directives) {
|
|
119
|
+
const errorMessages = getDirectiveValidationErrors(directiveNode, node.kind, directivesByDirectiveName, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, hostPath, isArgument);
|
|
120
|
+
const directiveName = directiveNode.name.value;
|
|
121
|
+
if (errorMessages.length > 0) {
|
|
122
|
+
errors.push((0, errors_1.invalidDirectiveError)(directiveName, hostPath, errorMessages));
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (string_constants_1.IGNORED_PARENT_DIRECTIVES.has(directiveName)) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (directiveName === string_constants_1.KEY) {
|
|
129
|
+
// The argument was validated earlier
|
|
130
|
+
const entityKey = directiveNode.arguments[0].value.value;
|
|
131
|
+
if (entityKeys.has(entityKey)) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
entityKeys.add(entityKey);
|
|
135
|
+
}
|
|
136
|
+
const existingDirectives = directivesByDirectiveName.get(directiveName);
|
|
137
|
+
existingDirectives
|
|
138
|
+
? existingDirectives.push(directiveNode)
|
|
139
|
+
: directivesByDirectiveName.set(directiveName, [directiveNode]);
|
|
140
|
+
}
|
|
141
|
+
return directivesByDirectiveName;
|
|
142
|
+
}
|
|
143
|
+
exports.extractDirectives = extractDirectives;
|
|
144
|
+
function extractArguments(argumentDataByArgumentName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, parentsWithChildArguments, parentTypeName, subgraphName) {
|
|
145
|
+
if (!node.arguments?.length) {
|
|
146
|
+
return argumentDataByArgumentName;
|
|
147
|
+
}
|
|
148
|
+
const fieldName = node.name.value;
|
|
149
|
+
const fieldPath = `${parentTypeName}.${fieldName}`;
|
|
150
|
+
parentsWithChildArguments.add(parentTypeName);
|
|
151
|
+
const duplicatedArguments = new Set();
|
|
152
|
+
for (const argumentNode of node.arguments) {
|
|
153
|
+
const argumentName = argumentNode.name.value;
|
|
154
|
+
if (argumentDataByArgumentName.has(argumentName)) {
|
|
155
|
+
duplicatedArguments.add(argumentName);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
upsertArgumentDataByNode(argumentDataByArgumentName, argumentNode, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, parentTypeName, fieldName, subgraphName);
|
|
159
|
+
}
|
|
160
|
+
if (duplicatedArguments.size > 0) {
|
|
161
|
+
errors.push((0, errors_1.duplicateArgumentsError)(fieldPath, [...duplicatedArguments]));
|
|
162
|
+
}
|
|
163
|
+
return argumentDataByArgumentName;
|
|
164
|
+
}
|
|
165
|
+
exports.extractArguments = extractArguments;
|
|
166
|
+
function upsertArgumentDataByNode(argumentDataByArgumentName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, parentTypeName, fieldName, subgraphName) {
|
|
167
|
+
const name = node.name.value;
|
|
168
|
+
const hostPath = `${parentTypeName}.${fieldName}`;
|
|
169
|
+
argumentDataByArgumentName.set(name, {
|
|
170
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, `${hostPath}(${name}: ...)`, true),
|
|
171
|
+
name,
|
|
172
|
+
node: (0, ast_1.getMutableInputValueNode)(node, parentTypeName, fieldName),
|
|
173
|
+
requiredSubgraphNames: new Set([subgraphName]),
|
|
174
|
+
subgraphNames: new Set([subgraphName]),
|
|
175
|
+
type: (0, ast_1.getMutableTypeNode)(node.type, hostPath),
|
|
176
|
+
defaultValue: node.defaultValue,
|
|
177
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
exports.upsertArgumentDataByNode = upsertArgumentDataByNode;
|
|
181
|
+
function upsertEnumDefinitionDataByNode(parentDefinitionDataByTypeName, node, directivesByDirectiveName) {
|
|
182
|
+
const typeName = node.name.value;
|
|
183
|
+
parentDefinitionDataByTypeName.set(typeName, {
|
|
184
|
+
appearances: 1,
|
|
185
|
+
directivesByDirectiveName,
|
|
186
|
+
kind: node.kind,
|
|
187
|
+
node: (0, ast_1.getMutableEnumNode)(node),
|
|
188
|
+
typeName,
|
|
189
|
+
enumValueDataByValueName: new Map(),
|
|
190
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
exports.upsertEnumDefinitionDataByNode = upsertEnumDefinitionDataByNode;
|
|
194
|
+
function upsertEnumExtensionDataByNode(parentExtensionDataByTypeName, node, directivesByDirectiveName) {
|
|
195
|
+
const typeName = node.name.value;
|
|
196
|
+
parentExtensionDataByTypeName.set(typeName, {
|
|
197
|
+
directivesByDirectiveName,
|
|
198
|
+
enumValueDataByValueName: new Map(),
|
|
199
|
+
kind: node.kind,
|
|
200
|
+
typeName,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
exports.upsertEnumExtensionDataByNode = upsertEnumExtensionDataByNode;
|
|
204
|
+
function upsertEnumValueDataByNode(enumValueDataByValueName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, parentTypeName) {
|
|
205
|
+
const name = node.name.value;
|
|
206
|
+
enumValueDataByValueName.set(name, {
|
|
207
|
+
appearances: 1,
|
|
208
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, `${parentTypeName}.${name}`),
|
|
209
|
+
name,
|
|
210
|
+
node: (0, ast_1.getMutableEnumValueNode)(node),
|
|
211
|
+
parentTypeName,
|
|
212
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
exports.upsertEnumValueDataByNode = upsertEnumValueDataByNode;
|
|
216
|
+
function addInheritedDirectivesToFieldData(parentDirectivesByDirectiveName, fieldDirectivesByDirectiveName) {
|
|
217
|
+
for (const directiveName of constants_1.INHERITABLE_DIRECTIVE_NAMES) {
|
|
218
|
+
if (parentDirectivesByDirectiveName.get(directiveName)) {
|
|
219
|
+
(0, utils_3.getValueOrDefault)(fieldDirectivesByDirectiveName, directiveName, () => [(0, utils_3.generateSimpleDirective)(directiveName)]);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return fieldDirectivesByDirectiveName;
|
|
223
|
+
}
|
|
224
|
+
exports.addInheritedDirectivesToFieldData = addInheritedDirectivesToFieldData;
|
|
225
|
+
function upsertFieldDataByNode(fieldDataByFieldName, node, errors, argumentDataByArgumentName, directivesByDirectiveName, parentTypeName, subgraphName, isSubgraphVersionTwo) {
|
|
226
|
+
const name = node.name.value;
|
|
227
|
+
const fieldPath = `${parentTypeName}.${name}`;
|
|
228
|
+
const isNodeExternalOrShareableResult = isNodeExternalOrShareable(node, !isSubgraphVersionTwo, directivesByDirectiveName);
|
|
229
|
+
const fieldData = {
|
|
230
|
+
argumentDataByArgumentName: argumentDataByArgumentName,
|
|
231
|
+
isExternalBySubgraphName: new Map([[subgraphName, isNodeExternalOrShareableResult.isExternal]]),
|
|
232
|
+
isShareableBySubgraphName: new Map([[subgraphName, isNodeExternalOrShareableResult.isShareable]]),
|
|
233
|
+
node: (0, ast_1.getMutableFieldNode)(node, parentTypeName),
|
|
234
|
+
name,
|
|
235
|
+
namedTypeName: (0, type_merging_1.getNamedTypeForChild)(fieldPath, node.type),
|
|
236
|
+
parentTypeName,
|
|
237
|
+
subgraphNames: new Set([subgraphName]),
|
|
238
|
+
directivesByDirectiveName,
|
|
239
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
240
|
+
};
|
|
241
|
+
fieldDataByFieldName.set(name, fieldData);
|
|
242
|
+
return fieldData;
|
|
243
|
+
}
|
|
244
|
+
exports.upsertFieldDataByNode = upsertFieldDataByNode;
|
|
245
|
+
function upsertExtensionWithFieldsDataByNode(parentExtensionDataByTypeName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, isEntity) {
|
|
246
|
+
const typeName = node.name.value;
|
|
247
|
+
const kind = convertKindForExtension(node);
|
|
248
|
+
switch (kind) {
|
|
249
|
+
case graphql_1.Kind.INTERFACE_TYPE_EXTENSION:
|
|
250
|
+
parentExtensionDataByTypeName.set(typeName, {
|
|
251
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, typeName),
|
|
252
|
+
fieldDataByFieldName: new Map(),
|
|
253
|
+
implementedInterfaceTypeNames: extractImplementedInterfaceTypeNames(node, new Set(), errors),
|
|
254
|
+
isEntity,
|
|
255
|
+
kind,
|
|
256
|
+
typeName,
|
|
257
|
+
});
|
|
258
|
+
return;
|
|
259
|
+
default:
|
|
260
|
+
parentExtensionDataByTypeName.set(typeName, {
|
|
261
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, typeName),
|
|
262
|
+
fieldDataByFieldName: new Map(),
|
|
263
|
+
implementedInterfaceTypeNames: extractImplementedInterfaceTypeNames(node, new Set(), errors),
|
|
264
|
+
isEntity,
|
|
265
|
+
kind,
|
|
266
|
+
node: (0, ast_1.getMutableObjectExtensionNode)(node),
|
|
267
|
+
typeName,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
exports.upsertExtensionWithFieldsDataByNode = upsertExtensionWithFieldsDataByNode;
|
|
272
|
+
function upsertInputObjectDefinitionDataByNode(parentDefinitionDataByTypeName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath) {
|
|
273
|
+
const typeName = node.name.value;
|
|
274
|
+
parentDefinitionDataByTypeName.set(typeName, {
|
|
275
|
+
appearances: 1,
|
|
276
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, typeName),
|
|
277
|
+
inputValueDataByValueName: new Map(),
|
|
278
|
+
kind: node.kind,
|
|
279
|
+
node: (0, ast_1.getMutableInputObjectNode)(node),
|
|
280
|
+
typeName,
|
|
281
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
exports.upsertInputObjectDefinitionDataByNode = upsertInputObjectDefinitionDataByNode;
|
|
285
|
+
function upsertInputObjectExtensionDataByNode(parentExtensionDataByTypeName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath) {
|
|
286
|
+
const typeName = node.name.value;
|
|
287
|
+
parentExtensionDataByTypeName.set(typeName, {
|
|
288
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, typeName),
|
|
289
|
+
inputValueDataByValueName: new Map(),
|
|
290
|
+
kind: node.kind,
|
|
291
|
+
typeName,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
exports.upsertInputObjectExtensionDataByNode = upsertInputObjectExtensionDataByNode;
|
|
295
|
+
function upsertInputValueDataByNode(inputValueDataByValueName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, parentTypeName) {
|
|
296
|
+
const name = node.name.value;
|
|
297
|
+
inputValueDataByValueName.set(name, {
|
|
298
|
+
appearances: 1,
|
|
299
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, `${parentTypeName}.${name}`),
|
|
300
|
+
name,
|
|
301
|
+
node: (0, ast_1.getMutableInputValueNode)(node, parentTypeName, name),
|
|
302
|
+
parentTypeName,
|
|
303
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
exports.upsertInputValueDataByNode = upsertInputValueDataByNode;
|
|
307
|
+
function upsertInterfaceDefinitionDataByNode(parentDefinitionDataByTypeName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, isEntity, subgraphName) {
|
|
308
|
+
const typeName = node.name.value;
|
|
309
|
+
parentDefinitionDataByTypeName.set(typeName, {
|
|
310
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, typeName),
|
|
311
|
+
fieldDataByFieldName: new Map(),
|
|
312
|
+
isEntity,
|
|
313
|
+
implementedInterfaceTypeNames: extractImplementedInterfaceTypeNames(node, new Set(), errors),
|
|
314
|
+
kind: node.kind,
|
|
315
|
+
node: (0, ast_1.getMutableInterfaceNode)(node),
|
|
316
|
+
subgraphNames: new Set([subgraphName]),
|
|
317
|
+
typeName,
|
|
318
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
exports.upsertInterfaceDefinitionDataByNode = upsertInterfaceDefinitionDataByNode;
|
|
322
|
+
function upsertObjectDefinitionDataByNode(parentDefinitionDataByTypeName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, isEntity, isRootType, subgraphName) {
|
|
323
|
+
const typeName = node.name.value;
|
|
324
|
+
parentDefinitionDataByTypeName.set(typeName, {
|
|
325
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, typeName),
|
|
326
|
+
fieldDataByFieldName: new Map(),
|
|
327
|
+
isEntity,
|
|
328
|
+
isRootType,
|
|
329
|
+
implementedInterfaceTypeNames: extractImplementedInterfaceTypeNames(node, new Set(), errors),
|
|
330
|
+
kind: node.kind,
|
|
331
|
+
node: (0, ast_1.getMutableObjectNode)(node),
|
|
332
|
+
subgraphNames: new Set([subgraphName]),
|
|
333
|
+
typeName,
|
|
334
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
exports.upsertObjectDefinitionDataByNode = upsertObjectDefinitionDataByNode;
|
|
338
|
+
function upsertScalarDefinitionDataByNode(parentDefinitionDataByTypeName, node, directivesByDirectiveName) {
|
|
339
|
+
const typeName = node.name.value;
|
|
340
|
+
parentDefinitionDataByTypeName.set(typeName, {
|
|
341
|
+
directivesByDirectiveName,
|
|
342
|
+
kind: node.kind,
|
|
343
|
+
node: (0, ast_1.getMutableScalarNode)(node),
|
|
344
|
+
typeName,
|
|
345
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
exports.upsertScalarDefinitionDataByNode = upsertScalarDefinitionDataByNode;
|
|
349
|
+
function upsertScalarExtensionDataByNode(parentExtensionDataByTypeName, node, directivesByDirectiveName) {
|
|
350
|
+
const typeName = node.name.value;
|
|
351
|
+
parentExtensionDataByTypeName.set(typeName, {
|
|
352
|
+
directivesByDirectiveName,
|
|
353
|
+
kind: node.kind,
|
|
354
|
+
typeName,
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
exports.upsertScalarExtensionDataByNode = upsertScalarExtensionDataByNode;
|
|
358
|
+
function extractUniqueUnionMembers(members, membersByMemberTypeName, errors, unionTypeName, abstractToConcreteTypeNames, referencedTypeNames) {
|
|
359
|
+
for (const member of members) {
|
|
360
|
+
const memberTypeName = member.name.value;
|
|
361
|
+
if (membersByMemberTypeName.has(memberTypeName)) {
|
|
362
|
+
errors.push((0, errors_1.duplicateUnionMemberError)(memberTypeName, unionTypeName));
|
|
363
|
+
continue;
|
|
364
|
+
}
|
|
365
|
+
const concreteTypes = abstractToConcreteTypeNames.get(unionTypeName);
|
|
366
|
+
if (concreteTypes) {
|
|
367
|
+
concreteTypes.add(memberTypeName);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
abstractToConcreteTypeNames.set(unionTypeName, new Set([memberTypeName]));
|
|
371
|
+
}
|
|
372
|
+
if (!constants_1.BASE_SCALARS.has(memberTypeName)) {
|
|
373
|
+
referencedTypeNames.add(memberTypeName);
|
|
374
|
+
}
|
|
375
|
+
membersByMemberTypeName.set(memberTypeName, member);
|
|
376
|
+
}
|
|
377
|
+
return membersByMemberTypeName;
|
|
378
|
+
}
|
|
379
|
+
exports.extractUniqueUnionMembers = extractUniqueUnionMembers;
|
|
380
|
+
function upsertUnionDefinitionDataByNode(parentDefinitionDataByTypeName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, abstractToConcreteTypeNames, referencedTypeNames) {
|
|
381
|
+
const typeName = node.name.value;
|
|
382
|
+
if (!node.types?.length) {
|
|
383
|
+
errors.push((0, errors_1.noDefinedUnionMembersError)(typeName));
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
parentDefinitionDataByTypeName.set(typeName, {
|
|
387
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, typeName),
|
|
388
|
+
kind: node.kind,
|
|
389
|
+
memberByMemberTypeName: extractUniqueUnionMembers(node.types, new Map(), errors, typeName, abstractToConcreteTypeNames, referencedTypeNames),
|
|
390
|
+
node: (0, ast_1.getMutableUnionNode)(node),
|
|
391
|
+
typeName,
|
|
392
|
+
description: (0, utils_1.formatDescription)(node.description),
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
exports.upsertUnionDefinitionDataByNode = upsertUnionDefinitionDataByNode;
|
|
396
|
+
function upsertUnionExtensionDataByNode(parentExtensionDataByTypeName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, abstractToConcreteTypeNames, referencedTypeNames) {
|
|
397
|
+
const typeName = node.name.value;
|
|
398
|
+
parentExtensionDataByTypeName.set(typeName, {
|
|
399
|
+
directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, typeName),
|
|
400
|
+
kind: node.kind,
|
|
401
|
+
memberByMemberTypeName: extractUniqueUnionMembers(
|
|
402
|
+
// Undefined or empty node.types is handled earlier
|
|
403
|
+
node.types, new Map(), errors, typeName, abstractToConcreteTypeNames, referencedTypeNames),
|
|
404
|
+
typeName,
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
exports.upsertUnionExtensionDataByNode = upsertUnionExtensionDataByNode;
|
|
408
|
+
function isTypeNameRootType(typeName, operationByTypeName) {
|
|
409
|
+
return string_constants_1.ROOT_TYPES.has(typeName) || operationByTypeName.has(typeName);
|
|
410
|
+
}
|
|
411
|
+
exports.isTypeNameRootType = isTypeNameRootType;
|
|
412
|
+
function convertKindForExtension(node) {
|
|
413
|
+
switch (node.kind) {
|
|
414
|
+
case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
|
|
415
|
+
return graphql_1.Kind.INTERFACE_TYPE_EXTENSION;
|
|
416
|
+
case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
|
|
417
|
+
return graphql_1.Kind.OBJECT_TYPE_EXTENSION;
|
|
418
|
+
default:
|
|
419
|
+
return node.kind;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
exports.convertKindForExtension = convertKindForExtension;
|
|
423
|
+
function extractImplementedInterfaceTypeNames(node, implementedInterfaceTypeNames, errors) {
|
|
424
|
+
if (!node.interfaces) {
|
|
425
|
+
return implementedInterfaceTypeNames;
|
|
426
|
+
}
|
|
427
|
+
const parentTypeName = node.name.value;
|
|
428
|
+
for (const implementedInterface of node.interfaces) {
|
|
429
|
+
const interfaceTypeName = implementedInterface.name.value;
|
|
430
|
+
if (errors && implementedInterfaceTypeNames.has(interfaceTypeName)) {
|
|
431
|
+
errors.push((0, errors_1.duplicateInterfaceError)(interfaceTypeName, parentTypeName));
|
|
432
|
+
continue;
|
|
433
|
+
}
|
|
434
|
+
implementedInterfaceTypeNames.add(interfaceTypeName);
|
|
435
|
+
}
|
|
436
|
+
return implementedInterfaceTypeNames;
|
|
437
|
+
}
|
|
438
|
+
exports.extractImplementedInterfaceTypeNames = extractImplementedInterfaceTypeNames;
|
|
439
|
+
function addExtensionDirectivesToDefinition(directivesByDirectiveName, parentExtensionData) {
|
|
440
|
+
if (!parentExtensionData) {
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
for (const [directiveName, directives] of parentExtensionData.directivesByDirectiveName) {
|
|
444
|
+
const existingDirectives = directivesByDirectiveName.get(directiveName);
|
|
445
|
+
if (existingDirectives) {
|
|
446
|
+
existingDirectives.push(...directives);
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
directivesByDirectiveName.set(directiveName, [...directives]);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
function addAuthorizationDirectivesToFieldData(authorizationDataByParentTypeName, fieldData) {
|
|
453
|
+
const authorizationData = authorizationDataByParentTypeName.get(fieldData.parentTypeName);
|
|
454
|
+
if (!authorizationData) {
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
457
|
+
const fieldAuthorizationData = authorizationData.fieldAuthorizationDataByFieldName.get(fieldData.name);
|
|
458
|
+
if (!fieldAuthorizationData) {
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
if (fieldAuthorizationData.requiresAuthentication) {
|
|
462
|
+
const authenticatedDirective = (0, utils_3.generateSimpleDirective)(string_constants_1.AUTHENTICATED);
|
|
463
|
+
fieldData.directivesByDirectiveName.set(string_constants_1.AUTHENTICATED, [authenticatedDirective]);
|
|
464
|
+
}
|
|
465
|
+
if (fieldAuthorizationData.requiredScopes.length > 0) {
|
|
466
|
+
const requiresScopesDirective = (0, utils_3.generateRequiresScopesDirective)(fieldAuthorizationData.requiredScopes);
|
|
467
|
+
fieldData.directivesByDirectiveName.set(string_constants_1.REQUIRES_SCOPES, [requiresScopesDirective]);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
function propagateFieldDataArguments(fieldData) {
|
|
471
|
+
for (const argumentData of fieldData.argumentDataByArgumentName.values()) {
|
|
472
|
+
// First propagate the argument's directives
|
|
473
|
+
for (const directiveNodes of argumentData.directivesByDirectiveName.values()) {
|
|
474
|
+
argumentData.node.directives.push(...directiveNodes);
|
|
475
|
+
}
|
|
476
|
+
fieldData.node.arguments.push(argumentData.node);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
function childMapToValueArray(map, authorizationDataByParentTypeName) {
|
|
480
|
+
const valueArray = [];
|
|
481
|
+
for (const childData of map.values()) {
|
|
482
|
+
if (childData.node.kind === graphql_1.Kind.FIELD_DEFINITION) {
|
|
483
|
+
const fieldData = childData;
|
|
484
|
+
addAuthorizationDirectivesToFieldData(authorizationDataByParentTypeName, fieldData);
|
|
485
|
+
propagateFieldDataArguments(fieldData);
|
|
486
|
+
}
|
|
487
|
+
for (const directiveNodes of childData.directivesByDirectiveName.values()) {
|
|
488
|
+
childData.node.directives.push(...directiveNodes);
|
|
489
|
+
}
|
|
490
|
+
valueArray.push(childData.node);
|
|
491
|
+
}
|
|
492
|
+
return valueArray;
|
|
493
|
+
}
|
|
494
|
+
function getValidFlattenedDirectiveArray(directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, hostPath) {
|
|
495
|
+
const flattenedArray = [];
|
|
496
|
+
for (const [directiveName, directiveNodes] of directivesByDirectiveName) {
|
|
497
|
+
const directiveDefinition = directiveDefinitionByDirectiveName.get(directiveName) ||
|
|
498
|
+
constants_1.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.get(directiveName);
|
|
499
|
+
if (!directiveDefinition) {
|
|
500
|
+
continue;
|
|
501
|
+
}
|
|
502
|
+
if (!directiveDefinition.repeatable && directiveNodes.length > 1) {
|
|
503
|
+
errors.push((0, errors_1.invalidDirectiveError)(directiveName, hostPath, [(0, errors_1.invalidRepeatedDirectiveErrorMessage)(directiveName, hostPath)]));
|
|
504
|
+
continue;
|
|
505
|
+
}
|
|
506
|
+
if (directiveName !== string_constants_1.KEY) {
|
|
507
|
+
flattenedArray.push(...directiveNodes);
|
|
508
|
+
continue;
|
|
509
|
+
}
|
|
510
|
+
const normalizedDirectiveNodes = [];
|
|
511
|
+
const entityKeys = new Set();
|
|
512
|
+
const errorMessages = [];
|
|
513
|
+
for (const keyDirectiveNode of directiveNodes) {
|
|
514
|
+
const directiveValue = keyDirectiveNode.arguments[0].value;
|
|
515
|
+
if (directiveValue.kind !== graphql_1.Kind.STRING) {
|
|
516
|
+
errorMessages.push((0, errors_1.invalidKeyDirectiveArgumentErrorMessage)(directiveValue.kind));
|
|
517
|
+
continue;
|
|
518
|
+
}
|
|
519
|
+
const entityKey = directiveValue.value;
|
|
520
|
+
if (entityKeys.has(entityKey)) {
|
|
521
|
+
continue;
|
|
522
|
+
}
|
|
523
|
+
entityKeys.add(entityKey);
|
|
524
|
+
flattenedArray.push(keyDirectiveNode);
|
|
525
|
+
normalizedDirectiveNodes.push(keyDirectiveNode);
|
|
526
|
+
}
|
|
527
|
+
directivesByDirectiveName.set(directiveName, normalizedDirectiveNodes);
|
|
528
|
+
if (errorMessages.length > 0) {
|
|
529
|
+
errors.push((0, errors_1.invalidDirectiveError)(directiveName, hostPath, errorMessages));
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
return flattenedArray;
|
|
533
|
+
}
|
|
534
|
+
function mergeUniqueUnionMembers(unionDefinitionData, errors, unionExtensionData) {
|
|
535
|
+
if (!unionExtensionData) {
|
|
536
|
+
return;
|
|
537
|
+
}
|
|
538
|
+
const definitionMembers = unionDefinitionData.memberByMemberTypeName;
|
|
539
|
+
const extensionMembers = unionExtensionData.memberByMemberTypeName;
|
|
540
|
+
const typeName = unionDefinitionData.typeName;
|
|
541
|
+
for (const [memberName, namedTypeNode] of extensionMembers) {
|
|
542
|
+
if (!definitionMembers.has(memberName)) {
|
|
543
|
+
definitionMembers.set(memberName, namedTypeNode);
|
|
544
|
+
continue;
|
|
545
|
+
}
|
|
546
|
+
errors.push((0, errors_1.duplicateUnionMemberExtensionError)(memberName, typeName));
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
function getEnumNodeByData(enumDefinitionData, errors, directiveDefinitionByDirectiveName, authorizationDataByParentTypeName, enumExtensionData) {
|
|
550
|
+
addExtensionDirectivesToDefinition(enumDefinitionData.directivesByDirectiveName, enumExtensionData);
|
|
551
|
+
enumDefinitionData.node.directives = getValidFlattenedDirectiveArray(enumDefinitionData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, enumDefinitionData.typeName);
|
|
552
|
+
enumDefinitionData.node.values = childMapToValueArray(enumDefinitionData.enumValueDataByValueName, authorizationDataByParentTypeName);
|
|
553
|
+
return enumDefinitionData.node;
|
|
554
|
+
}
|
|
555
|
+
exports.getEnumNodeByData = getEnumNodeByData;
|
|
556
|
+
function getInputObjectNodeByData(inputObjectDefinitionData, errors, directiveDefinitionByDirectiveName, authorizationDataByParentTypeName, inputObjectExtensionData) {
|
|
557
|
+
addExtensionDirectivesToDefinition(inputObjectDefinitionData.directivesByDirectiveName, inputObjectExtensionData);
|
|
558
|
+
inputObjectDefinitionData.node.directives = getValidFlattenedDirectiveArray(inputObjectDefinitionData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, inputObjectDefinitionData.typeName);
|
|
559
|
+
inputObjectDefinitionData.node.fields = childMapToValueArray(inputObjectDefinitionData.inputValueDataByValueName, authorizationDataByParentTypeName);
|
|
560
|
+
return inputObjectDefinitionData.node;
|
|
561
|
+
}
|
|
562
|
+
exports.getInputObjectNodeByData = getInputObjectNodeByData;
|
|
563
|
+
function getParentWithFieldsNodeByData(parentWithFieldsData, errors, directiveDefinitionByDirectiveName, authorizationDataByParentTypeName, parentExtensionWithFieldsData) {
|
|
564
|
+
addExtensionDirectivesToDefinition(parentWithFieldsData.directivesByDirectiveName, parentExtensionWithFieldsData);
|
|
565
|
+
parentWithFieldsData.node.directives = getValidFlattenedDirectiveArray(parentWithFieldsData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, parentWithFieldsData.typeName);
|
|
566
|
+
parentWithFieldsData.node.fields = childMapToValueArray(parentWithFieldsData.fieldDataByFieldName, authorizationDataByParentTypeName);
|
|
567
|
+
parentWithFieldsData.node.interfaces = (0, utils_1.setToNamedTypeNodeArray)(parentWithFieldsData.implementedInterfaceTypeNames);
|
|
568
|
+
return parentWithFieldsData.node;
|
|
569
|
+
}
|
|
570
|
+
exports.getParentWithFieldsNodeByData = getParentWithFieldsNodeByData;
|
|
571
|
+
function getScalarNodeByData(scalarDefinitionData, errors, directiveDefinitionByDirectiveName, scalarExtensionData) {
|
|
572
|
+
addExtensionDirectivesToDefinition(scalarDefinitionData.directivesByDirectiveName, scalarExtensionData);
|
|
573
|
+
scalarDefinitionData.node.directives = getValidFlattenedDirectiveArray(scalarDefinitionData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, scalarDefinitionData.typeName);
|
|
574
|
+
return scalarDefinitionData.node;
|
|
575
|
+
}
|
|
576
|
+
exports.getScalarNodeByData = getScalarNodeByData;
|
|
577
|
+
function getSchemaNodeByData(schemaData, errors, directiveDefinitionByDirectiveName) {
|
|
578
|
+
return {
|
|
579
|
+
description: schemaData.description,
|
|
580
|
+
directives: getValidFlattenedDirectiveArray(schemaData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, schemaData.typeName),
|
|
581
|
+
kind: schemaData.kind,
|
|
582
|
+
operationTypes: (0, utils_3.mapToArrayOfValues)(schemaData.operationTypes),
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
exports.getSchemaNodeByData = getSchemaNodeByData;
|
|
586
|
+
function getUnionNodeByData(unionDefinitionData, errors, directiveDefinitionByDirectiveName, unionExtensionData) {
|
|
587
|
+
mergeUniqueUnionMembers(unionDefinitionData, errors, unionExtensionData);
|
|
588
|
+
addExtensionDirectivesToDefinition(unionDefinitionData.directivesByDirectiveName, unionExtensionData);
|
|
589
|
+
unionDefinitionData.node.directives = getValidFlattenedDirectiveArray(unionDefinitionData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, unionDefinitionData.typeName);
|
|
590
|
+
unionDefinitionData.node.types = (0, utils_3.mapToArrayOfValues)(unionDefinitionData.memberByMemberTypeName);
|
|
591
|
+
return unionDefinitionData.node;
|
|
592
|
+
}
|
|
593
|
+
exports.getUnionNodeByData = getUnionNodeByData;
|
|
594
|
+
function removeInheritableDirectivesFromParentWithFieldsData(parentData) {
|
|
595
|
+
for (const directiveName of constants_1.INHERITABLE_DIRECTIVE_NAMES) {
|
|
596
|
+
parentData.directivesByDirectiveName.delete(directiveName);
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
exports.removeInheritableDirectivesFromParentWithFieldsData = removeInheritableDirectivesFromParentWithFieldsData;
|
|
600
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/schema-building/utils.ts"],"names":[],"mappings":"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"}
|