@apollo/federation-internals 2.11.2 → 2.11.3
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/buildSchema.d.ts.map +1 -1
- package/dist/buildSchema.js +42 -2
- package/dist/buildSchema.js.map +1 -1
- package/dist/directiveAndTypeSpecification.d.ts +8 -3
- package/dist/directiveAndTypeSpecification.d.ts.map +1 -1
- package/dist/directiveAndTypeSpecification.js +2 -1
- package/dist/directiveAndTypeSpecification.js.map +1 -1
- package/dist/specs/connectSpec.d.ts +0 -3
- package/dist/specs/connectSpec.d.ts.map +1 -1
- package/dist/specs/connectSpec.js +228 -60
- package/dist/specs/connectSpec.js.map +1 -1
- package/package.json +1 -1
- package/src/buildSchema.ts +51 -0
- package/src/directiveAndTypeSpecification.ts +8 -2
- package/src/specs/connectSpec.ts +364 -122
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectSpec.js","sourceRoot":"","sources":["../../src/specs/connectSpec.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"connectSpec.js","sourceRoot":"","sources":["../../src/specs/connectSpec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/buildSchema.ts
CHANGED
|
@@ -56,6 +56,9 @@ import {
|
|
|
56
56
|
} from "./definitions";
|
|
57
57
|
import { ERRORS, errorCauses, withModifiedErrorNodes } from "./error";
|
|
58
58
|
import { introspectionTypeNames } from "./introspection";
|
|
59
|
+
import { coreFeatureDefinitionIfKnown } from "./knownCoreFeatures";
|
|
60
|
+
import { connectIdentity } from "./specs/connectSpec";
|
|
61
|
+
|
|
59
62
|
|
|
60
63
|
function buildValue(value?: ValueNode): any {
|
|
61
64
|
return value ? valueFromASTUntyped(value) : undefined;
|
|
@@ -143,6 +146,48 @@ export function buildSchemaFromAST(
|
|
|
143
146
|
buildSchemaDefinitionInner(schemaExtension, schema.schemaDefinition, errors, schema.schemaDefinition.newExtension());
|
|
144
147
|
}
|
|
145
148
|
|
|
149
|
+
// The following block of code is a one-off to support input objects in the
|
|
150
|
+
// connect spec. It will be non-maintainable/bug-prone to do this again, and
|
|
151
|
+
// has various limitations/unsupported edge cases already.
|
|
152
|
+
//
|
|
153
|
+
// There's work to be done to support input objects more generally; please see
|
|
154
|
+
// https://github.com/apollographql/federation/pull/3311 for more information.
|
|
155
|
+
const connectFeature = schema.coreFeatures?.getByIdentity(connectIdentity);
|
|
156
|
+
const handledConnectTypeNames = new Set<string>();
|
|
157
|
+
if (connectFeature) {
|
|
158
|
+
const connectFeatureDefinition =
|
|
159
|
+
coreFeatureDefinitionIfKnown(connectFeature.url);
|
|
160
|
+
if (connectFeatureDefinition) {
|
|
161
|
+
const connectTypeNamesInSchema = new Set(
|
|
162
|
+
connectFeatureDefinition.typeSpecs()
|
|
163
|
+
.map(({ name }) => connectFeature.typeNameInSchema(name))
|
|
164
|
+
);
|
|
165
|
+
for (const typeNode of typeDefinitions) {
|
|
166
|
+
if (connectTypeNamesInSchema.has(typeNode.name.value)
|
|
167
|
+
&& typeNode.kind === 'InputObjectTypeDefinition'
|
|
168
|
+
) {
|
|
169
|
+
handledConnectTypeNames.add(typeNode.name.value)
|
|
170
|
+
} else {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
buildNamedTypeInner(typeNode, schema.type(typeNode.name.value)!, schema.blueprint, errors);
|
|
174
|
+
}
|
|
175
|
+
for (const typeExtensionNode of typeExtensions) {
|
|
176
|
+
if (connectTypeNamesInSchema.has(typeExtensionNode.name.value)
|
|
177
|
+
&& typeExtensionNode.kind === 'InputObjectTypeExtension'
|
|
178
|
+
) {
|
|
179
|
+
handledConnectTypeNames.add(typeExtensionNode.name.value)
|
|
180
|
+
} else {
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
const toExtend = schema.type(typeExtensionNode.name.value)!;
|
|
184
|
+
const extension = toExtend.newExtension();
|
|
185
|
+
extension.sourceAST = typeExtensionNode;
|
|
186
|
+
buildNamedTypeInner(typeExtensionNode, toExtend, schema.blueprint, errors, extension);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
146
191
|
// The following is a no-op for "standard" schema, but for federation subgraphs, this is where we handle the auto-addition
|
|
147
192
|
// of imported federation directive definitions. That is why we have avoid looking at directive applications within
|
|
148
193
|
// directive definition earlier: if one of those application was of an imported federation directive, the definition
|
|
@@ -155,9 +200,15 @@ export function buildSchemaFromAST(
|
|
|
155
200
|
}
|
|
156
201
|
|
|
157
202
|
for (const typeNode of typeDefinitions) {
|
|
203
|
+
if (handledConnectTypeNames.has(typeNode.name.value)) {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
158
206
|
buildNamedTypeInner(typeNode, schema.type(typeNode.name.value)!, schema.blueprint, errors);
|
|
159
207
|
}
|
|
160
208
|
for (const typeExtensionNode of typeExtensions) {
|
|
209
|
+
if (handledConnectTypeNames.has(typeExtensionNode.name.value)) {
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
161
212
|
const toExtend = schema.type(typeExtensionNode.name.value)!;
|
|
162
213
|
const extension = toExtend.newExtension();
|
|
163
214
|
extension.sourceAST = typeExtensionNode;
|
|
@@ -66,7 +66,13 @@ export type FieldSpecification = {
|
|
|
66
66
|
args?: ResolvedArgumentSpecification[],
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
type ResolvedArgumentSpecification = {
|
|
69
|
+
export type ResolvedArgumentSpecification = {
|
|
70
|
+
name: string,
|
|
71
|
+
type: InputType,
|
|
72
|
+
defaultValue?: any,
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export type InputFieldSpecification = {
|
|
70
76
|
name: string,
|
|
71
77
|
type: InputType,
|
|
72
78
|
defaultValue?: any,
|
|
@@ -338,7 +344,7 @@ export function createEnumTypeSpecification({
|
|
|
338
344
|
}
|
|
339
345
|
}
|
|
340
346
|
|
|
341
|
-
function ensureSameTypeKind(expected: NamedType['kind'], actual: NamedType): GraphQLError[] {
|
|
347
|
+
export function ensureSameTypeKind(expected: NamedType['kind'], actual: NamedType): GraphQLError[] {
|
|
342
348
|
return expected === actual.kind
|
|
343
349
|
? []
|
|
344
350
|
: [
|