@wundergraph/composition 0.0.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/LICENSE +18 -0
- package/README.md +3 -0
- package/dist/ast/ast.d.ts +84 -0
- package/dist/ast/ast.js +183 -0
- package/dist/ast/ast.js.map +1 -0
- package/dist/ast/utils.d.ts +130 -0
- package/dist/ast/utils.js +298 -0
- package/dist/ast/utils.js.map +1 -0
- package/dist/buildASTSchema/buildASTSchema.d.ts +22 -0
- package/dist/buildASTSchema/buildASTSchema.js +59 -0
- package/dist/buildASTSchema/buildASTSchema.js.map +1 -0
- package/dist/buildASTSchema/extendSchema.d.ts +21 -0
- package/dist/buildASTSchema/extendSchema.js +555 -0
- package/dist/buildASTSchema/extendSchema.js.map +1 -0
- package/dist/errors/errors.d.ts +60 -0
- package/dist/errors/errors.js +302 -0
- package/dist/errors/errors.js.map +1 -0
- package/dist/federation/federation-factory.d.ts +58 -0
- package/dist/federation/federation-factory.js +843 -0
- package/dist/federation/federation-factory.js.map +1 -0
- package/dist/federation/federation-result.d.ts +6 -0
- package/dist/federation/federation-result.js +10 -0
- package/dist/federation/federation-result.js.map +1 -0
- package/dist/federation/subgraph.d.ts +18 -0
- package/dist/federation/subgraph.js +305 -0
- package/dist/federation/subgraph.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/normalization/normalization-factory.d.ts +54 -0
- package/dist/normalization/normalization-factory.js +882 -0
- package/dist/normalization/normalization-factory.js.map +1 -0
- package/dist/normalization/utils.d.ts +121 -0
- package/dist/normalization/utils.js +278 -0
- package/dist/normalization/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/type-merging/type-merging.d.ts +9 -0
- package/dist/type-merging/type-merging.js +112 -0
- package/dist/type-merging/type-merging.js.map +1 -0
- package/dist/utils/constants.d.ts +6 -0
- package/dist/utils/constants.js +157 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/string-constants.d.ts +39 -0
- package/dist/utils/string-constants.js +43 -0
- package/dist/utils/string-constants.js.map +1 -0
- package/dist/utils/utils.d.ts +7 -0
- package/dist/utils/utils.js +80 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +35 -0
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInlineFragmentString = exports.isKindAbstract = exports.operationTypeNodeToDefaultType = exports.nodeKindToDirectiveLocation = exports.setToNamedTypeNodeArray = exports.stringToNamedTypeNode = exports.stringToNameNodes = exports.stringToNameNode = exports.areBaseAndExtensionKindsCompatible = exports.assertEqualKindsOrThrow = exports.isNodeShareable = exports.extractInterfaces = exports.getEntityKeyExtractionResults = exports.getEntityKeyExtractionResult = exports.extractEntityKeys = exports.isObjectNodeEntity = exports.MergeMethod = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
const string_constants_1 = require("../utils/string-constants");
|
|
6
|
+
const errors_1 = require("../errors/errors");
|
|
7
|
+
const utils_1 = require("../utils/utils");
|
|
8
|
+
var MergeMethod;
|
|
9
|
+
(function (MergeMethod) {
|
|
10
|
+
MergeMethod[MergeMethod["UNION"] = 0] = "UNION";
|
|
11
|
+
MergeMethod[MergeMethod["INTERSECTION"] = 1] = "INTERSECTION";
|
|
12
|
+
MergeMethod[MergeMethod["CONSISTENT"] = 2] = "CONSISTENT";
|
|
13
|
+
})(MergeMethod || (exports.MergeMethod = MergeMethod = {}));
|
|
14
|
+
function isObjectNodeEntity(node) {
|
|
15
|
+
if (!node.directives?.length) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
for (const directive of node.directives) {
|
|
19
|
+
if (directive.name.value === string_constants_1.KEY) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
exports.isObjectNodeEntity = isObjectNodeEntity;
|
|
26
|
+
function extractEntityKeys(node, keySet) {
|
|
27
|
+
if (!node.directives?.length) {
|
|
28
|
+
return keySet;
|
|
29
|
+
}
|
|
30
|
+
for (const directive of node.directives) {
|
|
31
|
+
if (directive.name.value === string_constants_1.KEY) {
|
|
32
|
+
if (!directive.arguments) {
|
|
33
|
+
throw new Error('Entity without arguments'); // TODO
|
|
34
|
+
}
|
|
35
|
+
for (const arg of directive.arguments) {
|
|
36
|
+
if (arg.name.value !== 'fields') {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (arg.value.kind !== graphql_1.Kind.STRING) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
keySet.add(arg.value.value);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return keySet;
|
|
47
|
+
}
|
|
48
|
+
exports.extractEntityKeys = extractEntityKeys;
|
|
49
|
+
function getEntityKeyExtractionResult(rawEntityKey, parentTypeName) {
|
|
50
|
+
const rootKey = { parent: '', siblings: [] };
|
|
51
|
+
const entityKeyMap = new Map([[parentTypeName, rootKey]]);
|
|
52
|
+
const keyPath = [parentTypeName];
|
|
53
|
+
let currentSegment = '';
|
|
54
|
+
let segmentEnded = true;
|
|
55
|
+
let currentKey;
|
|
56
|
+
for (const char of rawEntityKey) {
|
|
57
|
+
currentKey = (0, utils_1.getOrThrowError)(entityKeyMap, keyPath.join('.'));
|
|
58
|
+
switch (char) {
|
|
59
|
+
case ' ':
|
|
60
|
+
segmentEnded = true;
|
|
61
|
+
break;
|
|
62
|
+
case '{':
|
|
63
|
+
if (!currentSegment) {
|
|
64
|
+
return { error: (0, errors_1.invalidEntityKeyError)(parentTypeName, rawEntityKey, errors_1.invalidOpeningBraceErrorMessage) };
|
|
65
|
+
}
|
|
66
|
+
currentKey.siblings.push(currentSegment);
|
|
67
|
+
const nestedKey = { parent: currentSegment, siblings: [] };
|
|
68
|
+
if (currentKey.nestedKeys) {
|
|
69
|
+
currentKey.nestedKeys.push(nestedKey);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
currentKey.nestedKeys = [nestedKey];
|
|
73
|
+
}
|
|
74
|
+
keyPath.push(currentSegment);
|
|
75
|
+
currentSegment = '';
|
|
76
|
+
entityKeyMap.set(keyPath.join('.'), nestedKey);
|
|
77
|
+
segmentEnded = true;
|
|
78
|
+
break;
|
|
79
|
+
case '}':
|
|
80
|
+
if (currentSegment) {
|
|
81
|
+
currentKey.siblings.push(currentSegment);
|
|
82
|
+
}
|
|
83
|
+
if (currentKey.siblings.length < 1) {
|
|
84
|
+
return { error: (0, errors_1.invalidEntityKeyError)(parentTypeName, rawEntityKey, errors_1.invalidClosingBraceErrorMessage) };
|
|
85
|
+
}
|
|
86
|
+
if (keyPath.join('.') === parentTypeName) {
|
|
87
|
+
return { error: (0, errors_1.invalidEntityKeyError)(parentTypeName, rawEntityKey, errors_1.invalidNestingClosureErrorMessage) };
|
|
88
|
+
}
|
|
89
|
+
currentSegment = '';
|
|
90
|
+
keyPath.pop();
|
|
91
|
+
segmentEnded = true;
|
|
92
|
+
break;
|
|
93
|
+
default:
|
|
94
|
+
if (currentSegment && segmentEnded) {
|
|
95
|
+
if (!currentSegment.match(/[_A-Za-z][_A-Za-z0-9]*/)) {
|
|
96
|
+
return {
|
|
97
|
+
error: (0, errors_1.invalidEntityKeyError)(parentTypeName, rawEntityKey, (0, errors_1.invalidGraphQLNameErrorMessage)('field', currentSegment)),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
currentKey.siblings.push(currentSegment);
|
|
101
|
+
currentSegment = char;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
currentSegment += char;
|
|
105
|
+
}
|
|
106
|
+
segmentEnded = false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (keyPath.join('.') !== parentTypeName) {
|
|
110
|
+
return { error: (0, errors_1.invalidEntityKeyError)(parentTypeName, rawEntityKey, errors_1.invalidNestingErrorMessage) };
|
|
111
|
+
}
|
|
112
|
+
if (currentSegment) {
|
|
113
|
+
rootKey.siblings.push(currentSegment);
|
|
114
|
+
}
|
|
115
|
+
return { entityKey: rootKey };
|
|
116
|
+
}
|
|
117
|
+
exports.getEntityKeyExtractionResult = getEntityKeyExtractionResult;
|
|
118
|
+
function getEntityKeyExtractionResults(node, entityKeyMap) {
|
|
119
|
+
if (!node.directives?.length) {
|
|
120
|
+
return { entityKeyMap, errors: [new Error('No directives found.')] }; // todo
|
|
121
|
+
}
|
|
122
|
+
const parentTypeName = node.name.value;
|
|
123
|
+
const rawEntityKeys = new Set();
|
|
124
|
+
const errorMessages = [];
|
|
125
|
+
for (const directive of node.directives) {
|
|
126
|
+
if (directive.name.value !== string_constants_1.KEY) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
if (!directive.arguments || directive.arguments.length < 1) {
|
|
130
|
+
errorMessages.push((0, errors_1.undefinedRequiredArgumentsErrorMessage)(string_constants_1.KEY, parentTypeName, [string_constants_1.FIELDS]));
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
for (const arg of directive.arguments) {
|
|
134
|
+
const argumentName = arg.name.value;
|
|
135
|
+
if (arg.name.value !== string_constants_1.FIELDS) {
|
|
136
|
+
errorMessages.push((0, errors_1.unexpectedDirectiveArgumentErrorMessage)(string_constants_1.KEY, argumentName));
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
if (arg.value.kind !== graphql_1.Kind.STRING) {
|
|
140
|
+
errorMessages.push((0, errors_1.invalidKeyDirectiveArgumentErrorMessage)(arg.value.kind));
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
rawEntityKeys.add(arg.value.value);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const errors = [];
|
|
147
|
+
if (errorMessages.length > 0) {
|
|
148
|
+
errors.push((0, errors_1.invalidKeyDirectiveError)(parentTypeName, errorMessages));
|
|
149
|
+
}
|
|
150
|
+
for (const rawEntityKey of rawEntityKeys) {
|
|
151
|
+
const existingEntityKey = entityKeyMap.get(rawEntityKey);
|
|
152
|
+
if (existingEntityKey) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
const { entityKey, error } = getEntityKeyExtractionResult(rawEntityKey, parentTypeName);
|
|
156
|
+
if (error) {
|
|
157
|
+
errors.push(error);
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
if (!entityKey) {
|
|
161
|
+
throw new Error(); // this should never happen
|
|
162
|
+
}
|
|
163
|
+
entityKeyMap.set(rawEntityKey, entityKey);
|
|
164
|
+
}
|
|
165
|
+
return { entityKeyMap, errors };
|
|
166
|
+
}
|
|
167
|
+
exports.getEntityKeyExtractionResults = getEntityKeyExtractionResults;
|
|
168
|
+
function extractInterfaces(node, interfaces) {
|
|
169
|
+
if (!node.interfaces) {
|
|
170
|
+
return interfaces;
|
|
171
|
+
}
|
|
172
|
+
for (const face of node.interfaces) {
|
|
173
|
+
interfaces.add(face.name.value);
|
|
174
|
+
}
|
|
175
|
+
return interfaces;
|
|
176
|
+
}
|
|
177
|
+
exports.extractInterfaces = extractInterfaces;
|
|
178
|
+
function isNodeShareable(node) {
|
|
179
|
+
// TODO make sure extensions do not break this https://www.apollographql.com/docs/federation/federated-types/sharing-types/#using-shareable-with-extend
|
|
180
|
+
if (!node.directives) {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
for (const directive of node.directives) {
|
|
184
|
+
if (directive.name.value === string_constants_1.SHAREABLE) {
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
exports.isNodeShareable = isNodeShareable;
|
|
191
|
+
function assertEqualKindsOrThrow(kind, other) {
|
|
192
|
+
if (kind !== other) {
|
|
193
|
+
throw new Error(''); // TODO
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
exports.assertEqualKindsOrThrow = assertEqualKindsOrThrow;
|
|
197
|
+
function areBaseAndExtensionKindsCompatible(baseKind, extensionKind) {
|
|
198
|
+
switch (baseKind) {
|
|
199
|
+
case graphql_1.Kind.ENUM_TYPE_DEFINITION:
|
|
200
|
+
return extensionKind === graphql_1.Kind.ENUM_TYPE_EXTENSION;
|
|
201
|
+
case graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION:
|
|
202
|
+
return extensionKind === graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION;
|
|
203
|
+
case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
|
|
204
|
+
return extensionKind === graphql_1.Kind.INTERFACE_TYPE_EXTENSION;
|
|
205
|
+
case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
|
|
206
|
+
return extensionKind === graphql_1.Kind.OBJECT_TYPE_EXTENSION;
|
|
207
|
+
case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
|
|
208
|
+
return extensionKind === graphql_1.Kind.SCALAR_TYPE_EXTENSION;
|
|
209
|
+
case graphql_1.Kind.UNION_TYPE_DEFINITION:
|
|
210
|
+
return extensionKind === graphql_1.Kind.UNION_TYPE_EXTENSION;
|
|
211
|
+
default:
|
|
212
|
+
throw new Error('Unexpected kind');
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
exports.areBaseAndExtensionKindsCompatible = areBaseAndExtensionKindsCompatible;
|
|
216
|
+
function stringToNameNode(value) {
|
|
217
|
+
return {
|
|
218
|
+
kind: graphql_1.Kind.NAME,
|
|
219
|
+
value,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
exports.stringToNameNode = stringToNameNode;
|
|
223
|
+
function stringToNameNodes(values) {
|
|
224
|
+
const nameNodes = [];
|
|
225
|
+
for (const value of values) {
|
|
226
|
+
nameNodes.push(stringToNameNode(value));
|
|
227
|
+
}
|
|
228
|
+
return nameNodes;
|
|
229
|
+
}
|
|
230
|
+
exports.stringToNameNodes = stringToNameNodes;
|
|
231
|
+
function stringToNamedTypeNode(value) {
|
|
232
|
+
return {
|
|
233
|
+
kind: graphql_1.Kind.NAMED_TYPE,
|
|
234
|
+
name: stringToNameNode(value),
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
exports.stringToNamedTypeNode = stringToNamedTypeNode;
|
|
238
|
+
function setToNamedTypeNodeArray(set) {
|
|
239
|
+
const namedTypeNodes = [];
|
|
240
|
+
for (const entry of set) {
|
|
241
|
+
namedTypeNodes.push(stringToNamedTypeNode(entry));
|
|
242
|
+
}
|
|
243
|
+
return namedTypeNodes;
|
|
244
|
+
}
|
|
245
|
+
exports.setToNamedTypeNodeArray = setToNamedTypeNodeArray;
|
|
246
|
+
function nodeKindToDirectiveLocation(kind) {
|
|
247
|
+
switch (kind) {
|
|
248
|
+
case graphql_1.Kind.ENUM_TYPE_DEFINITION:
|
|
249
|
+
// intentional fallthrough
|
|
250
|
+
case graphql_1.Kind.ENUM_TYPE_EXTENSION:
|
|
251
|
+
return string_constants_1.ENUM_UPPER;
|
|
252
|
+
case graphql_1.Kind.ENUM_VALUE_DEFINITION:
|
|
253
|
+
return string_constants_1.ENUM_VALUE_UPPER;
|
|
254
|
+
case graphql_1.Kind.FIELD_DEFINITION:
|
|
255
|
+
return string_constants_1.FIELD_DEFINITION_UPPER;
|
|
256
|
+
case graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION:
|
|
257
|
+
// intentional fallthrough
|
|
258
|
+
case graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION:
|
|
259
|
+
return string_constants_1.INPUT_OBJECT_UPPER;
|
|
260
|
+
case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
|
|
261
|
+
// intentional fallthrough
|
|
262
|
+
case graphql_1.Kind.INTERFACE_TYPE_EXTENSION:
|
|
263
|
+
return string_constants_1.INTERFACE_UPPER;
|
|
264
|
+
case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
|
|
265
|
+
// intentional fallthrough
|
|
266
|
+
case graphql_1.Kind.OBJECT_TYPE_EXTENSION:
|
|
267
|
+
return string_constants_1.OBJECT_UPPER;
|
|
268
|
+
case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
|
|
269
|
+
// intentional fallthrough
|
|
270
|
+
case graphql_1.Kind.SCALAR_TYPE_EXTENSION:
|
|
271
|
+
return string_constants_1.SCALAR_UPPER;
|
|
272
|
+
case graphql_1.Kind.SCHEMA_DEFINITION:
|
|
273
|
+
// intentional fallthrough
|
|
274
|
+
case graphql_1.Kind.SCHEMA_EXTENSION:
|
|
275
|
+
return string_constants_1.SCHEMA_UPPER;
|
|
276
|
+
case graphql_1.Kind.UNION_TYPE_DEFINITION:
|
|
277
|
+
// intentional fallthrough
|
|
278
|
+
case graphql_1.Kind.UNION_TYPE_EXTENSION:
|
|
279
|
+
return string_constants_1.SCHEMA_UPPER;
|
|
280
|
+
default:
|
|
281
|
+
throw new Error(`Unknown Kind "${kind}".`); // TODO
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
exports.nodeKindToDirectiveLocation = nodeKindToDirectiveLocation;
|
|
285
|
+
exports.operationTypeNodeToDefaultType = new Map([
|
|
286
|
+
[graphql_1.OperationTypeNode.MUTATION, string_constants_1.MUTATION],
|
|
287
|
+
[graphql_1.OperationTypeNode.QUERY, string_constants_1.QUERY],
|
|
288
|
+
[graphql_1.OperationTypeNode.SUBSCRIPTION, string_constants_1.SUBSCRIPTION],
|
|
289
|
+
]);
|
|
290
|
+
function isKindAbstract(kind) {
|
|
291
|
+
return kind === graphql_1.Kind.INTERFACE_TYPE_DEFINITION || kind === graphql_1.Kind.UNION_TYPE_DEFINITION;
|
|
292
|
+
}
|
|
293
|
+
exports.isKindAbstract = isKindAbstract;
|
|
294
|
+
function getInlineFragmentString(parentTypeName) {
|
|
295
|
+
return ` ... on ${parentTypeName} `;
|
|
296
|
+
}
|
|
297
|
+
exports.getInlineFragmentString = getInlineFragmentString;
|
|
298
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DocumentNode, GraphQLSchema } from 'graphql';
|
|
2
|
+
import { GraphQLSchemaValidationOptions } from 'graphql/type/schema';
|
|
3
|
+
export interface BuildASTSchemaOptions extends GraphQLSchemaValidationOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Set to true to assume the SDL is valid.
|
|
6
|
+
*
|
|
7
|
+
* Default: false
|
|
8
|
+
*/
|
|
9
|
+
addInvalidExtensionOrphans?: boolean;
|
|
10
|
+
assumeValidSDL?: boolean | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* This takes the ast of a schema document produced by the parse function in
|
|
14
|
+
* src/language/parser.js.
|
|
15
|
+
*
|
|
16
|
+
* If no schema definition is provided, then it will look for types named Query,
|
|
17
|
+
* Mutation and Subscription.
|
|
18
|
+
*
|
|
19
|
+
* Given that AST it constructs a GraphQLSchema. The resulting schema
|
|
20
|
+
* has no resolve methods, so execution will use default resolvers.
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildASTSchema(documentAST: DocumentNode, options?: BuildASTSchemaOptions): GraphQLSchema;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildASTSchema = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
const validate_1 = require("graphql/validation/validate");
|
|
6
|
+
const extendSchema_1 = require("./extendSchema");
|
|
7
|
+
/**
|
|
8
|
+
* This takes the ast of a schema document produced by the parse function in
|
|
9
|
+
* src/language/parser.js.
|
|
10
|
+
*
|
|
11
|
+
* If no schema definition is provided, then it will look for types named Query,
|
|
12
|
+
* Mutation and Subscription.
|
|
13
|
+
*
|
|
14
|
+
* Given that AST it constructs a GraphQLSchema. The resulting schema
|
|
15
|
+
* has no resolve methods, so execution will use default resolvers.
|
|
16
|
+
*/
|
|
17
|
+
function buildASTSchema(documentAST, options) {
|
|
18
|
+
if (options?.assumeValid !== true && options?.assumeValidSDL !== true) {
|
|
19
|
+
(0, validate_1.assertValidSDL)(documentAST);
|
|
20
|
+
}
|
|
21
|
+
const emptySchemaConfig = {
|
|
22
|
+
description: undefined,
|
|
23
|
+
types: [],
|
|
24
|
+
directives: [],
|
|
25
|
+
extensions: Object.create(null),
|
|
26
|
+
extensionASTNodes: [],
|
|
27
|
+
assumeValid: false,
|
|
28
|
+
};
|
|
29
|
+
const config = (0, extendSchema_1.extendSchemaImpl)(emptySchemaConfig, documentAST, options);
|
|
30
|
+
if (config.astNode == null) {
|
|
31
|
+
for (const type of config.types) {
|
|
32
|
+
switch (type.name) {
|
|
33
|
+
// Note: While this could make early assertions to get the correctly
|
|
34
|
+
// typed values below, that would throw immediately while type system
|
|
35
|
+
// validation with validateSchema() will produce more actionable results.
|
|
36
|
+
case 'Query':
|
|
37
|
+
// @ts-expect-error validated in `validateSchema`
|
|
38
|
+
config.query = type;
|
|
39
|
+
break;
|
|
40
|
+
case 'Mutation':
|
|
41
|
+
// @ts-expect-error validated in `validateSchema`
|
|
42
|
+
config.mutation = type;
|
|
43
|
+
break;
|
|
44
|
+
case 'Subscription':
|
|
45
|
+
// @ts-expect-error validated in `validateSchema`
|
|
46
|
+
config.subscription = type;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const directives = [
|
|
52
|
+
...config.directives,
|
|
53
|
+
// If specified directives were not explicitly declared, add them.
|
|
54
|
+
...graphql_1.specifiedDirectives.filter((stdDirective) => config.directives.every((directive) => directive.name !== stdDirective.name)),
|
|
55
|
+
];
|
|
56
|
+
return new graphql_1.GraphQLSchema({ ...config, directives });
|
|
57
|
+
}
|
|
58
|
+
exports.buildASTSchema = buildASTSchema;
|
|
59
|
+
//# sourceMappingURL=buildASTSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildASTSchema.js","sourceRoot":"","sources":["../../src/buildASTSchema/buildASTSchema.ts"],"names":[],"mappings":";;;AAAA,qCAA2E;AAC3E,0DAA6D;AAC7D,iDAAkD;AAalD;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAAC,WAAyB,EAAE,OAA+B;IACvF,IAAI,OAAO,EAAE,WAAW,KAAK,IAAI,IAAI,OAAO,EAAE,cAAc,KAAK,IAAI,EAAE;QACrE,IAAA,yBAAc,EAAC,WAAW,CAAC,CAAC;KAC7B;IAED,MAAM,iBAAiB,GAAG;QACxB,WAAW,EAAE,SAAS;QACtB,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,iBAAiB,EAAE,EAAE;QACrB,WAAW,EAAE,KAAK;KACnB,CAAC;IACF,MAAM,MAAM,GAAG,IAAA,+BAAgB,EAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEzE,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE;QAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;YAC/B,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,oEAAoE;gBACpE,qEAAqE;gBACrE,yEAAyE;gBACzE,KAAK,OAAO;oBACV,iDAAiD;oBACjD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;oBACpB,MAAM;gBACR,KAAK,UAAU;oBACb,iDAAiD;oBACjD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACvB,MAAM;gBACR,KAAK,cAAc;oBACjB,iDAAiD;oBACjD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC3B,MAAM;aACT;SACF;KACF;IAED,MAAM,UAAU,GAAG;QACjB,GAAG,MAAM,CAAC,UAAU;QACpB,kEAAkE;QAClE,GAAG,6BAAmB,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAC7C,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAA2B,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,CAC/F;KACF,CAAC;IAEF,OAAO,IAAI,uBAAa,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AACtD,CAAC;AA9CD,wCA8CC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DocumentNode } from 'graphql';
|
|
2
|
+
import { GraphQLSchemaNormalizedConfig } from 'graphql/type/schema';
|
|
3
|
+
import { BuildASTSchemaOptions } from './buildASTSchema';
|
|
4
|
+
export declare class AccumulatorMap<K, T> extends Map<K, Array<T>> {
|
|
5
|
+
get [Symbol.toStringTag](): string;
|
|
6
|
+
add(key: K, item: T): void;
|
|
7
|
+
}
|
|
8
|
+
export declare function mapValue<T, V>(map: ReadOnlyObjMap<T>, fn: (value: T, key: string) => V): ObjMap<V>;
|
|
9
|
+
export interface ObjMap<T> {
|
|
10
|
+
[key: string]: T;
|
|
11
|
+
}
|
|
12
|
+
export type ObjMapLike<T> = ObjMap<T> | {
|
|
13
|
+
[key: string]: T;
|
|
14
|
+
};
|
|
15
|
+
export interface ReadOnlyObjMap<T> {
|
|
16
|
+
readonly [key: string]: T;
|
|
17
|
+
}
|
|
18
|
+
export type ReadOnlyObjMapLike<T> = ReadOnlyObjMap<T> | {
|
|
19
|
+
readonly [key: string]: T;
|
|
20
|
+
};
|
|
21
|
+
export declare function extendSchemaImpl(schemaConfig: GraphQLSchemaNormalizedConfig, documentAST: DocumentNode, options?: BuildASTSchemaOptions): GraphQLSchemaNormalizedConfig;
|