@apollo/federation-internals 2.9.0-connectors.9 → 2.9.0
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/argumentCompositionStrategies.d.ts +17 -0
- package/dist/argumentCompositionStrategies.d.ts.map +1 -1
- package/dist/argumentCompositionStrategies.js +38 -0
- package/dist/argumentCompositionStrategies.js.map +1 -1
- package/dist/error.d.ts +19 -0
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +38 -0
- package/dist/error.js.map +1 -1
- package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -1
- package/dist/extractSubgraphsFromSupergraph.js +59 -8
- package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
- package/dist/federation.d.ts +9 -2
- package/dist/federation.d.ts.map +1 -1
- package/dist/federation.js +42 -5
- package/dist/federation.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/knownCoreFeatures.d.ts +3 -0
- package/dist/knownCoreFeatures.d.ts.map +1 -1
- package/dist/knownCoreFeatures.js +12 -1
- package/dist/knownCoreFeatures.js.map +1 -1
- package/dist/operations.d.ts +3 -1
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +26 -5
- package/dist/operations.js.map +1 -1
- package/dist/schemaUpgrader.d.ts.map +1 -1
- package/dist/schemaUpgrader.js +50 -31
- package/dist/schemaUpgrader.js.map +1 -1
- package/dist/specs/coreSpec.d.ts +2 -0
- package/dist/specs/coreSpec.d.ts.map +1 -1
- package/dist/specs/coreSpec.js +21 -0
- package/dist/specs/coreSpec.js.map +1 -1
- package/dist/specs/costSpec.d.ts +17 -0
- package/dist/specs/costSpec.d.ts.map +1 -0
- package/dist/specs/costSpec.js +49 -0
- package/dist/specs/costSpec.js.map +1 -0
- package/dist/specs/federationSpec.d.ts +6 -1
- package/dist/specs/federationSpec.d.ts.map +1 -1
- package/dist/specs/federationSpec.js +15 -1
- package/dist/specs/federationSpec.js.map +1 -1
- package/dist/specs/sourceSpec.d.ts +69 -0
- package/dist/specs/sourceSpec.d.ts.map +1 -0
- package/dist/specs/sourceSpec.js +345 -0
- package/dist/specs/sourceSpec.js.map +1 -0
- package/dist/supergraphs.d.ts +1 -1
- package/dist/supergraphs.d.ts.map +1 -1
- package/dist/supergraphs.js +1 -0
- package/dist/supergraphs.js.map +1 -1
- package/package.json +1 -1
- package/src/argumentCompositionStrategies.ts +37 -0
- package/src/error.ts +137 -4
- package/src/extractSubgraphsFromSupergraph.ts +94 -7
- package/src/federation.ts +89 -33
- package/src/index.ts +2 -1
- package/src/knownCoreFeatures.ts +15 -0
- package/src/operations.ts +41 -4
- package/src/schemaUpgrader.ts +55 -31
- package/src/specs/coreSpec.ts +26 -0
- package/src/specs/costSpec.ts +60 -0
- package/src/specs/federationSpec.ts +17 -1
- package/src/specs/sourceSpec.ts +607 -0
- package/src/supergraphs.ts +2 -1
- package/dist/specs/connectSpec.d.ts +0 -42
- package/dist/specs/connectSpec.d.ts.map +0 -1
- package/dist/specs/connectSpec.js +0 -83
- package/dist/specs/connectSpec.js.map +0 -1
- package/src/specs/connectSpec.ts +0 -183
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federationSpec.js","sourceRoot":"","sources":["../../src/specs/federationSpec.ts"],"names":[],"mappings":";;;AAAA,gDAIwB;AACxB,yCAA+F;AAC/F,oFAI0C;AAC1C,qCAA4C;AAC5C,oCAAkC;AAClC,uCAAyC;AACzC,8CAAmD;AACnD,4DAA4D;AAC5D,yDAA2D;AAC3D,2DAA6D;AAC7D,6DAAgE;AAChE,6CAA+C;AAC/C,+CAAiD;
|
|
1
|
+
{"version":3,"file":"federationSpec.js","sourceRoot":"","sources":["../../src/specs/federationSpec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { GraphQLError } from 'graphql';
|
|
2
|
+
import { FeatureDefinition, FeatureDefinitions, FeatureVersion } from "./coreSpec";
|
|
3
|
+
import { Schema, DirectiveDefinition } from '../definitions';
|
|
4
|
+
export declare const sourceIdentity = "https://specs.apollo.dev/source";
|
|
5
|
+
export declare class SourceSpecDefinition extends FeatureDefinition {
|
|
6
|
+
readonly minimumFederationVersion: FeatureVersion;
|
|
7
|
+
constructor(version: FeatureVersion, minimumFederationVersion: FeatureVersion);
|
|
8
|
+
addElementsToSchema(schema: Schema): GraphQLError[];
|
|
9
|
+
allElementNames(): string[];
|
|
10
|
+
sourceAPIDirective(schema: Schema): DirectiveDefinition<SourceAPIDirectiveArgs>;
|
|
11
|
+
sourceTypeDirective(schema: Schema): DirectiveDefinition<SourceTypeDirectiveArgs>;
|
|
12
|
+
sourceFieldDirective(schema: Schema): DirectiveDefinition<SourceFieldDirectiveArgs>;
|
|
13
|
+
private getSourceDirectives;
|
|
14
|
+
validateSubgraphSchema(schema: Schema): GraphQLError[];
|
|
15
|
+
private validateSourceAPI;
|
|
16
|
+
private validateSourceType;
|
|
17
|
+
private validateSourceField;
|
|
18
|
+
}
|
|
19
|
+
export type SourceAPIDirectiveArgs = {
|
|
20
|
+
name: string;
|
|
21
|
+
http?: HTTPSourceAPI;
|
|
22
|
+
};
|
|
23
|
+
export type HTTPSourceAPI = {
|
|
24
|
+
baseURL: string;
|
|
25
|
+
headers?: HTTPHeaderMapping[];
|
|
26
|
+
};
|
|
27
|
+
export type HTTPHeaderMapping = {
|
|
28
|
+
name: string;
|
|
29
|
+
as?: string;
|
|
30
|
+
value?: string;
|
|
31
|
+
};
|
|
32
|
+
export type SourceTypeDirectiveArgs = {
|
|
33
|
+
api: string;
|
|
34
|
+
http?: HTTPSourceType;
|
|
35
|
+
selection: JSONSelection;
|
|
36
|
+
keyTypeMap?: KeyTypeMap;
|
|
37
|
+
};
|
|
38
|
+
export type HTTPSourceType = {
|
|
39
|
+
GET?: URLPathTemplate;
|
|
40
|
+
POST?: URLPathTemplate;
|
|
41
|
+
headers?: HTTPHeaderMapping[];
|
|
42
|
+
body?: JSONSelection;
|
|
43
|
+
};
|
|
44
|
+
type URLPathTemplate = string;
|
|
45
|
+
type JSONSelection = string;
|
|
46
|
+
type KeyTypeMap = {
|
|
47
|
+
key: string;
|
|
48
|
+
typeMap: {
|
|
49
|
+
[__typename: string]: string;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export type SourceFieldDirectiveArgs = {
|
|
53
|
+
api: string;
|
|
54
|
+
http?: HTTPSourceField;
|
|
55
|
+
selection?: JSONSelection;
|
|
56
|
+
keyTypeMap?: KeyTypeMap;
|
|
57
|
+
};
|
|
58
|
+
export type HTTPSourceField = {
|
|
59
|
+
GET?: URLPathTemplate;
|
|
60
|
+
POST?: URLPathTemplate;
|
|
61
|
+
PUT?: URLPathTemplate;
|
|
62
|
+
PATCH?: URLPathTemplate;
|
|
63
|
+
DELETE?: URLPathTemplate;
|
|
64
|
+
body?: JSONSelection;
|
|
65
|
+
headers?: HTTPHeaderMapping[];
|
|
66
|
+
};
|
|
67
|
+
export declare const SOURCE_VERSIONS: FeatureDefinitions<SourceSpecDefinition>;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=sourceSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceSpec.d.ts","sourceRoot":"","sources":["../../src/specs/sourceSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAQ,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAc,cAAc,EAAqB,MAAM,YAAY,CAAC;AAClH,OAAO,EACL,MAAM,EAKN,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE,qBAAa,oBAAqB,SAAQ,iBAAiB;IACpB,QAAQ,CAAC,wBAAwB,EAAE,cAAc;gBAA1E,OAAO,EAAE,cAAc,EAAW,wBAAwB,EAAE,cAAc;IA4BtF,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IA2EnD,eAAe,IAAI,MAAM,EAAE;IAgB3B,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAIlC,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAInC,OAAO,CAAC,mBAAmB;IA+BlB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IA+B/D,OAAO,CAAC,iBAAiB;IAkEzB,OAAO,CAAC,kBAAkB;IAiG1B,OAAO,CAAC,mBAAmB;CAiH5B;AA2DD,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,KAAK,eAAe,GAAG,MAAM,CAAC;AAC9B,KAAK,aAAa,GAAG,MAAM,CAAC;AAE5B,KAAK,UAAU,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE;QACP,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,eAAe,0CACwD,CAAC"}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SOURCE_VERSIONS = exports.SourceSpecDefinition = exports.sourceIdentity = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
const coreSpec_1 = require("./coreSpec");
|
|
6
|
+
const definitions_1 = require("../definitions");
|
|
7
|
+
const knownCoreFeatures_1 = require("../knownCoreFeatures");
|
|
8
|
+
const directiveAndTypeSpecification_1 = require("../directiveAndTypeSpecification");
|
|
9
|
+
const error_1 = require("../error");
|
|
10
|
+
exports.sourceIdentity = 'https://specs.apollo.dev/source';
|
|
11
|
+
class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
|
|
12
|
+
constructor(version, minimumFederationVersion) {
|
|
13
|
+
super(new coreSpec_1.FeatureUrl(exports.sourceIdentity, 'source', version), minimumFederationVersion);
|
|
14
|
+
this.minimumFederationVersion = minimumFederationVersion;
|
|
15
|
+
this.registerDirective((0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
|
|
16
|
+
name: 'sourceAPI',
|
|
17
|
+
locations: [graphql_1.DirectiveLocation.SCHEMA],
|
|
18
|
+
repeatable: true,
|
|
19
|
+
composes: false,
|
|
20
|
+
}));
|
|
21
|
+
this.registerDirective((0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
|
|
22
|
+
name: 'sourceType',
|
|
23
|
+
locations: [graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE],
|
|
24
|
+
repeatable: true,
|
|
25
|
+
composes: false,
|
|
26
|
+
}));
|
|
27
|
+
this.registerDirective((0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
|
|
28
|
+
name: 'sourceField',
|
|
29
|
+
locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION],
|
|
30
|
+
repeatable: true,
|
|
31
|
+
composes: false,
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
addElementsToSchema(schema) {
|
|
35
|
+
const sourceAPI = this.addDirective(schema, 'sourceAPI').addLocations(graphql_1.DirectiveLocation.SCHEMA);
|
|
36
|
+
sourceAPI.repeatable = true;
|
|
37
|
+
sourceAPI.addArgument('name', new definitions_1.NonNullType(schema.stringType()));
|
|
38
|
+
const HTTPHeaderMapping = schema.addType(new definitions_1.InputObjectType('HTTPHeaderMapping'));
|
|
39
|
+
HTTPHeaderMapping.addField(new definitions_1.InputFieldDefinition('name')).type =
|
|
40
|
+
new definitions_1.NonNullType(schema.stringType());
|
|
41
|
+
HTTPHeaderMapping.addField(new definitions_1.InputFieldDefinition('as')).type =
|
|
42
|
+
schema.stringType();
|
|
43
|
+
HTTPHeaderMapping.addField(new definitions_1.InputFieldDefinition('value')).type =
|
|
44
|
+
schema.stringType();
|
|
45
|
+
const HTTPSourceAPI = schema.addType(new definitions_1.InputObjectType('HTTPSourceAPI'));
|
|
46
|
+
HTTPSourceAPI.addField(new definitions_1.InputFieldDefinition('baseURL')).type =
|
|
47
|
+
new definitions_1.NonNullType(schema.stringType());
|
|
48
|
+
HTTPSourceAPI.addField(new definitions_1.InputFieldDefinition('headers')).type =
|
|
49
|
+
new definitions_1.ListType(new definitions_1.NonNullType(HTTPHeaderMapping));
|
|
50
|
+
sourceAPI.addArgument('http', HTTPSourceAPI);
|
|
51
|
+
const sourceType = this.addDirective(schema, 'sourceType').addLocations(graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE);
|
|
52
|
+
sourceType.repeatable = true;
|
|
53
|
+
sourceType.addArgument('api', new definitions_1.NonNullType(schema.stringType()));
|
|
54
|
+
const URLPathTemplate = this.addScalarType(schema, 'URLPathTemplate');
|
|
55
|
+
const JSONSelection = this.addScalarType(schema, 'JSONSelection');
|
|
56
|
+
const HTTPSourceType = schema.addType(new definitions_1.InputObjectType('HTTPSourceType'));
|
|
57
|
+
HTTPSourceType.addField(new definitions_1.InputFieldDefinition('GET')).type = URLPathTemplate;
|
|
58
|
+
HTTPSourceType.addField(new definitions_1.InputFieldDefinition('POST')).type = URLPathTemplate;
|
|
59
|
+
HTTPSourceType.addField(new definitions_1.InputFieldDefinition('headers')).type =
|
|
60
|
+
new definitions_1.ListType(new definitions_1.NonNullType(HTTPHeaderMapping));
|
|
61
|
+
HTTPSourceType.addField(new definitions_1.InputFieldDefinition('body')).type = JSONSelection;
|
|
62
|
+
sourceType.addArgument('http', HTTPSourceType);
|
|
63
|
+
sourceType.addArgument('selection', new definitions_1.NonNullType(JSONSelection));
|
|
64
|
+
const KeyTypeMap = schema.addType(new definitions_1.InputObjectType('KeyTypeMap'));
|
|
65
|
+
KeyTypeMap.addField(new definitions_1.InputFieldDefinition('key')).type = new definitions_1.NonNullType(schema.stringType());
|
|
66
|
+
KeyTypeMap.addField(new definitions_1.InputFieldDefinition('typeMap')).type =
|
|
67
|
+
this.addScalarType(schema, 'TypenameKeyMap');
|
|
68
|
+
sourceType.addArgument('keyTypeMap', KeyTypeMap);
|
|
69
|
+
const sourceField = this.addDirective(schema, 'sourceField').addLocations(graphql_1.DirectiveLocation.FIELD_DEFINITION);
|
|
70
|
+
sourceField.repeatable = true;
|
|
71
|
+
sourceField.addArgument('api', new definitions_1.NonNullType(schema.stringType()));
|
|
72
|
+
sourceField.addArgument('selection', JSONSelection);
|
|
73
|
+
sourceField.addArgument('keyTypeMap', KeyTypeMap);
|
|
74
|
+
const HTTPSourceField = schema.addType(new definitions_1.InputObjectType('HTTPSourceField'));
|
|
75
|
+
HTTPSourceField.addField(new definitions_1.InputFieldDefinition('GET')).type = URLPathTemplate;
|
|
76
|
+
HTTPSourceField.addField(new definitions_1.InputFieldDefinition('POST')).type = URLPathTemplate;
|
|
77
|
+
HTTPSourceField.addField(new definitions_1.InputFieldDefinition('PUT')).type = URLPathTemplate;
|
|
78
|
+
HTTPSourceField.addField(new definitions_1.InputFieldDefinition('PATCH')).type = URLPathTemplate;
|
|
79
|
+
HTTPSourceField.addField(new definitions_1.InputFieldDefinition('DELETE')).type = URLPathTemplate;
|
|
80
|
+
HTTPSourceField.addField(new definitions_1.InputFieldDefinition('body')).type = JSONSelection;
|
|
81
|
+
HTTPSourceField.addField(new definitions_1.InputFieldDefinition('headers')).type =
|
|
82
|
+
new definitions_1.ListType(new definitions_1.NonNullType(HTTPHeaderMapping));
|
|
83
|
+
sourceField.addArgument('http', HTTPSourceField);
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
allElementNames() {
|
|
87
|
+
return [
|
|
88
|
+
'@sourceAPI',
|
|
89
|
+
'@sourceType',
|
|
90
|
+
'@sourceField',
|
|
91
|
+
];
|
|
92
|
+
}
|
|
93
|
+
sourceAPIDirective(schema) {
|
|
94
|
+
return this.directive(schema, 'sourceAPI');
|
|
95
|
+
}
|
|
96
|
+
sourceTypeDirective(schema) {
|
|
97
|
+
return this.directive(schema, 'sourceType');
|
|
98
|
+
}
|
|
99
|
+
sourceFieldDirective(schema) {
|
|
100
|
+
return this.directive(schema, 'sourceField');
|
|
101
|
+
}
|
|
102
|
+
getSourceDirectives(schema) {
|
|
103
|
+
const result = {};
|
|
104
|
+
schema.schemaDefinition.appliedDirectivesOf('link')
|
|
105
|
+
.forEach(linkDirective => {
|
|
106
|
+
const { url, import: imports } = linkDirective.arguments();
|
|
107
|
+
const featureUrl = coreSpec_1.FeatureUrl.maybeParse(url);
|
|
108
|
+
if (imports && featureUrl && featureUrl.identity === exports.sourceIdentity) {
|
|
109
|
+
imports.forEach(nameOrRename => {
|
|
110
|
+
const originalName = typeof nameOrRename === 'string' ? nameOrRename : nameOrRename.name;
|
|
111
|
+
const importedName = typeof nameOrRename === 'string' ? nameOrRename : nameOrRename.as || originalName;
|
|
112
|
+
const importedNameWithoutAt = importedName.replace(/^@/, '');
|
|
113
|
+
if (originalName === '@sourceAPI') {
|
|
114
|
+
result.sourceAPI = schema.directive(importedNameWithoutAt);
|
|
115
|
+
}
|
|
116
|
+
else if (originalName === '@sourceType') {
|
|
117
|
+
result.sourceType = schema.directive(importedNameWithoutAt);
|
|
118
|
+
}
|
|
119
|
+
else if (originalName === '@sourceField') {
|
|
120
|
+
result.sourceField = schema.directive(importedNameWithoutAt);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
validateSubgraphSchema(schema) {
|
|
128
|
+
const errors = super.validateSubgraphSchema(schema);
|
|
129
|
+
const { sourceAPI, sourceType, sourceField, } = this.getSourceDirectives(schema);
|
|
130
|
+
if (!(sourceAPI || sourceType || sourceField)) {
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
const apiNameToProtocol = new Map();
|
|
134
|
+
if (sourceAPI) {
|
|
135
|
+
this.validateSourceAPI(sourceAPI, apiNameToProtocol, errors);
|
|
136
|
+
}
|
|
137
|
+
if (sourceType) {
|
|
138
|
+
this.validateSourceType(sourceType, apiNameToProtocol, errors);
|
|
139
|
+
}
|
|
140
|
+
if (sourceField) {
|
|
141
|
+
this.validateSourceField(sourceField, apiNameToProtocol, errors);
|
|
142
|
+
}
|
|
143
|
+
return errors;
|
|
144
|
+
}
|
|
145
|
+
validateSourceAPI(sourceAPI, apiNameToProtocol, errors) {
|
|
146
|
+
sourceAPI.applications().forEach(application => {
|
|
147
|
+
const { name, ...rest } = application.arguments();
|
|
148
|
+
if (!isValidSourceAPIName(name)) {
|
|
149
|
+
errors.push(error_1.ERRORS.SOURCE_API_NAME_INVALID.err(`${sourceAPI}(name: ${JSON.stringify(name)}) must specify name using only [a-zA-Z0-9-_] characters`, { nodes: application.sourceAST }));
|
|
150
|
+
}
|
|
151
|
+
if (apiNameToProtocol.has(name)) {
|
|
152
|
+
errors.push(error_1.ERRORS.SOURCE_API_NAME_INVALID.err(`${sourceAPI} must specify unique name (${JSON.stringify(name)} reused)`, { nodes: application.sourceAST }));
|
|
153
|
+
}
|
|
154
|
+
let protocol;
|
|
155
|
+
KNOWN_SOURCE_PROTOCOLS.forEach(knownProtocol => {
|
|
156
|
+
if (rest[knownProtocol]) {
|
|
157
|
+
if (protocol) {
|
|
158
|
+
errors.push(error_1.ERRORS.SOURCE_API_PROTOCOL_INVALID.err(`${sourceAPI} must specify only one of ${KNOWN_SOURCE_PROTOCOLS.join(', ')} but specified both ${protocol} and ${knownProtocol}`, { nodes: application.sourceAST }));
|
|
159
|
+
}
|
|
160
|
+
protocol = knownProtocol;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
if (protocol) {
|
|
164
|
+
apiNameToProtocol.set(name, protocol);
|
|
165
|
+
const protocolValue = rest[protocol];
|
|
166
|
+
if (protocolValue && protocol === HTTP_PROTOCOL) {
|
|
167
|
+
const { baseURL, headers } = protocolValue;
|
|
168
|
+
try {
|
|
169
|
+
new URL(baseURL);
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
errors.push(error_1.ERRORS.SOURCE_API_HTTP_BASE_URL_INVALID.err(`${sourceAPI} http.baseURL ${JSON.stringify(baseURL)} must be valid URL (error: ${e.message})`, { nodes: application.sourceAST }));
|
|
173
|
+
}
|
|
174
|
+
validateHTTPHeaders(headers, errors, sourceAPI.name);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
errors.push(error_1.ERRORS.SOURCE_API_PROTOCOL_INVALID.err(`${sourceAPI} must specify one protocol from the set {${KNOWN_SOURCE_PROTOCOLS.join(',')}}`, { nodes: application.sourceAST }));
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
validateSourceType(sourceType, apiNameToProtocol, errors) {
|
|
183
|
+
sourceType.applications().forEach(application => {
|
|
184
|
+
var _a;
|
|
185
|
+
const { api, selection, ...rest } = application.arguments();
|
|
186
|
+
if (!api || !apiNameToProtocol.has(api)) {
|
|
187
|
+
errors.push(error_1.ERRORS.SOURCE_TYPE_API_ERROR.err(`${sourceType} specifies unknown api ${api}`, { nodes: application.sourceAST }));
|
|
188
|
+
}
|
|
189
|
+
const expectedProtocol = apiNameToProtocol.get(api) || HTTP_PROTOCOL;
|
|
190
|
+
const protocolValue = expectedProtocol && rest[expectedProtocol];
|
|
191
|
+
if (expectedProtocol && !protocolValue) {
|
|
192
|
+
errors.push(error_1.ERRORS.SOURCE_TYPE_PROTOCOL_INVALID.err(`${sourceType} must specify same ${expectedProtocol} argument as corresponding @sourceAPI for api ${api}`, { nodes: application.sourceAST }));
|
|
193
|
+
}
|
|
194
|
+
if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
|
|
195
|
+
const { GET, POST, headers, body } = protocolValue;
|
|
196
|
+
if ([GET, POST].filter(Boolean).length !== 1) {
|
|
197
|
+
errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_METHOD_INVALID.err(`${sourceType} must specify exactly one of http.GET or http.POST`, { nodes: application.sourceAST }));
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
const urlPathTemplate = (GET || POST);
|
|
201
|
+
try {
|
|
202
|
+
parseURLPathTemplate(urlPathTemplate);
|
|
203
|
+
}
|
|
204
|
+
catch (e) {
|
|
205
|
+
errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_PATH_INVALID.err(`${sourceType} http.GET or http.POST must be valid URL path template (error: ${e.message})`));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
validateHTTPHeaders(headers, errors, sourceType.name);
|
|
209
|
+
if (body) {
|
|
210
|
+
if (GET) {
|
|
211
|
+
errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(`${sourceType} http.GET cannot specify http.body`, { nodes: application.sourceAST }));
|
|
212
|
+
}
|
|
213
|
+
try {
|
|
214
|
+
parseJSONSelection(body);
|
|
215
|
+
}
|
|
216
|
+
catch (e) {
|
|
217
|
+
errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(`${sourceType} http.body not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
const ast = application.parent.sourceAST;
|
|
222
|
+
switch (ast === null || ast === void 0 ? void 0 : ast.kind) {
|
|
223
|
+
case "ObjectTypeDefinition":
|
|
224
|
+
case "InterfaceTypeDefinition":
|
|
225
|
+
if (!((_a = ast.directives) === null || _a === void 0 ? void 0 : _a.some(directive => directive.name.value === "key"))) {
|
|
226
|
+
errors.push(error_1.ERRORS.SOURCE_TYPE_ON_NON_OBJECT_OR_NON_ENTITY.err(`${sourceType} must be applied to an entity type that also has a @key directive`, { nodes: application.sourceAST }));
|
|
227
|
+
}
|
|
228
|
+
try {
|
|
229
|
+
parseJSONSelection(selection);
|
|
230
|
+
}
|
|
231
|
+
catch (e) {
|
|
232
|
+
errors.push(error_1.ERRORS.SOURCE_TYPE_SELECTION_INVALID.err(`${sourceType} selection not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
|
|
233
|
+
}
|
|
234
|
+
break;
|
|
235
|
+
default:
|
|
236
|
+
errors.push(error_1.ERRORS.SOURCE_TYPE_ON_NON_OBJECT_OR_NON_ENTITY.err(`${sourceType} must be applied to object or interface type`, { nodes: application.sourceAST }));
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
validateSourceField(sourceField, apiNameToProtocol, errors) {
|
|
241
|
+
sourceField.applications().forEach(application => {
|
|
242
|
+
var _a, _b, _c;
|
|
243
|
+
const { api, selection, ...rest } = application.arguments();
|
|
244
|
+
if (!api || !apiNameToProtocol.has(api)) {
|
|
245
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_API_ERROR.err(`${sourceField} specifies unknown api ${api}`, { nodes: application.sourceAST }));
|
|
246
|
+
}
|
|
247
|
+
const expectedProtocol = apiNameToProtocol.get(api) || HTTP_PROTOCOL;
|
|
248
|
+
const protocolValue = expectedProtocol && rest[expectedProtocol];
|
|
249
|
+
if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
|
|
250
|
+
const { GET, POST, PUT, PATCH, DELETE, headers, body, } = protocolValue;
|
|
251
|
+
const usedMethods = [GET, POST, PUT, PATCH, DELETE].filter(Boolean);
|
|
252
|
+
if (usedMethods.length > 1) {
|
|
253
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_METHOD_INVALID.err(`${sourceField} allows at most one of http.{GET,POST,PUT,PATCH,DELETE}`));
|
|
254
|
+
}
|
|
255
|
+
else if (usedMethods.length === 1) {
|
|
256
|
+
const urlPathTemplate = usedMethods[0];
|
|
257
|
+
try {
|
|
258
|
+
parseURLPathTemplate(urlPathTemplate);
|
|
259
|
+
}
|
|
260
|
+
catch (e) {
|
|
261
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_PATH_INVALID.err(`${sourceField} http.{GET,POST,PUT,PATCH,DELETE} must be valid URL path template (error: ${e.message})`));
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
validateHTTPHeaders(headers, errors, sourceField.name);
|
|
265
|
+
if (body) {
|
|
266
|
+
if (GET) {
|
|
267
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.GET cannot specify http.body`, { nodes: application.sourceAST }));
|
|
268
|
+
}
|
|
269
|
+
else if (DELETE) {
|
|
270
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.DELETE cannot specify http.body`, { nodes: application.sourceAST }));
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
parseJSONSelection(body);
|
|
274
|
+
}
|
|
275
|
+
catch (e) {
|
|
276
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.body not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
if (selection) {
|
|
281
|
+
try {
|
|
282
|
+
parseJSONSelection(selection);
|
|
283
|
+
}
|
|
284
|
+
catch (e) {
|
|
285
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_SELECTION_INVALID.err(`${sourceField} selection not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
const fieldParent = application.parent;
|
|
289
|
+
if (((_a = fieldParent.sourceAST) === null || _a === void 0 ? void 0 : _a.kind) !== graphql_1.Kind.FIELD_DEFINITION) {
|
|
290
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(`${sourceField} must be applied to field`, { nodes: application.sourceAST }));
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
const typeGrandparent = fieldParent.parent;
|
|
294
|
+
if (((_b = typeGrandparent.sourceAST) === null || _b === void 0 ? void 0 : _b.kind) !== graphql_1.Kind.OBJECT_TYPE_DEFINITION) {
|
|
295
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(`${sourceField} must be applied to field of object type`, { nodes: application.sourceAST }));
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
const typeGrandparentName = (_c = typeGrandparent.sourceAST) === null || _c === void 0 ? void 0 : _c.name.value;
|
|
299
|
+
if (typeGrandparentName !== "Query" &&
|
|
300
|
+
typeGrandparentName !== "Mutation" &&
|
|
301
|
+
typeGrandparent.appliedDirectivesOf("key").length === 0) {
|
|
302
|
+
errors.push(error_1.ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(`${sourceField} must be applied to root Query or Mutation field or field of entity type`, { nodes: application.sourceAST }));
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
exports.SourceSpecDefinition = SourceSpecDefinition;
|
|
310
|
+
function isValidSourceAPIName(name) {
|
|
311
|
+
return /^[a-z-_][a-z0-9-_]*$/i.test(name);
|
|
312
|
+
}
|
|
313
|
+
function isValidHTTPHeaderName(name) {
|
|
314
|
+
return /^[a-zA-Z0-9-_]+$/.test(name);
|
|
315
|
+
}
|
|
316
|
+
function validateHTTPHeaders(headers, errors, directiveName) {
|
|
317
|
+
if (!directiveName.startsWith('@')) {
|
|
318
|
+
directiveName = '@' + directiveName;
|
|
319
|
+
}
|
|
320
|
+
if (headers) {
|
|
321
|
+
headers.forEach(({ name, as, value }, i) => {
|
|
322
|
+
if (!isValidHTTPHeaderName(name)) {
|
|
323
|
+
errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} header ${JSON.stringify(headers[i])} specifies invalid name`));
|
|
324
|
+
}
|
|
325
|
+
if (as && !isValidHTTPHeaderName(as)) {
|
|
326
|
+
errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} header ${JSON.stringify(headers[i])} specifies invalid 'as' name`));
|
|
327
|
+
}
|
|
328
|
+
if (as && value) {
|
|
329
|
+
errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} header ${JSON.stringify(headers[i])} should specify at most one of 'as' or 'value'`));
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
function parseJSONSelection(_selection) {
|
|
335
|
+
}
|
|
336
|
+
function parseURLPathTemplate(_template) {
|
|
337
|
+
}
|
|
338
|
+
const HTTP_PROTOCOL = "http";
|
|
339
|
+
const KNOWN_SOURCE_PROTOCOLS = [
|
|
340
|
+
HTTP_PROTOCOL,
|
|
341
|
+
];
|
|
342
|
+
exports.SOURCE_VERSIONS = new coreSpec_1.FeatureDefinitions(exports.sourceIdentity)
|
|
343
|
+
.add(new SourceSpecDefinition(new coreSpec_1.FeatureVersion(0, 1), new coreSpec_1.FeatureVersion(2, 7)));
|
|
344
|
+
(0, knownCoreFeatures_1.registerKnownFeature)(exports.SOURCE_VERSIONS);
|
|
345
|
+
//# sourceMappingURL=sourceSpec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceSpec.js","sourceRoot":"","sources":["../../src/specs/sourceSpec.ts"],"names":[],"mappings":"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"}
|
package/dist/supergraphs.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare class Supergraph {
|
|
|
14
14
|
private _subgraphNameToGraphEnumValue?;
|
|
15
15
|
constructor(schema: Schema, supportedFeatures?: Set<string> | null, shouldValidate?: boolean);
|
|
16
16
|
static build(supergraphSdl: string | DocumentNode, options?: {
|
|
17
|
-
supportedFeatures?: Set<string
|
|
17
|
+
supportedFeatures?: Set<string>;
|
|
18
18
|
validateSupergraph?: boolean;
|
|
19
19
|
}): Supergraph;
|
|
20
20
|
static buildForTests(supergraphSdl: string | DocumentNode, validateSupergraph?: boolean): Supergraph;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supergraphs.d.ts","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAc,MAAM,eAAe,CAAC;AACjE,OAAO,EAAgB,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAInF,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAE9B,eAAO,MAAM,qCAAqC,aAahD,CAAC;AAEH,eAAO,MAAM,oCAAoC,
|
|
1
|
+
{"version":3,"file":"supergraphs.d.ts","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAc,MAAM,eAAe,CAAC;AACjE,OAAO,EAAgB,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAInF,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAE9B,eAAO,MAAM,qCAAqC,aAahD,CAAC;AAEH,eAAO,MAAM,oCAAoC,aAmB/C,CAAC;AAwCH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAezF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,qBAAa,UAAU;IAOnB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IARjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyC;IAE5E,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,6BAA6B,CAAC,CAAsB;gBAGjD,MAAM,EAAE,MAAM,EACvB,iBAAiB,GAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAA4C,EAC5D,cAAc,GAAE,OAAc;IAiBjD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE;IAS9H,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,EAAE,kBAAkB,CAAC,EAAE,OAAO;IASvF,iBAAiB,IAAI,SAAS;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE;IAI3D,SAAS,IAAI,SAAS;IAYtB,4BAA4B,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IASnD,SAAS,IAAI,MAAM;CAGpB"}
|
package/dist/supergraphs.js
CHANGED
|
@@ -39,6 +39,7 @@ exports.ROUTER_SUPPORTED_SUPERGRAPH_FEATURES = new Set([
|
|
|
39
39
|
'https://specs.apollo.dev/policy/v0.1',
|
|
40
40
|
'https://specs.apollo.dev/source/v0.1',
|
|
41
41
|
'https://specs.apollo.dev/context/v0.1',
|
|
42
|
+
'https://specs.apollo.dev/cost/v0.1',
|
|
42
43
|
]);
|
|
43
44
|
const coreVersionZeroDotOneUrl = coreSpec_1.FeatureUrl.parse('https://specs.apollo.dev/core/v0.1');
|
|
44
45
|
function checkFeatureSupport(coreFeatures, supportedFeatures) {
|
package/dist/supergraphs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supergraphs.js","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":";;;AACA,+CAAkF;AAClF,+CAAiE;AACjE,+CAAmF;AACnF,+CAAgE;AAChE,qFAA8H;AAC9H,mCAAiC;AAGpB,QAAA,qCAAqC,GAAG,IAAI,GAAG,CAAC;IAC3D,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,4CAA4C;IAC5C,4CAA4C;CAC7C,CAAC,CAAC;AAEU,QAAA,oCAAoC,GAAG,IAAI,GAAG,CAAC;IAC1D,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,4CAA4C;IAC5C,4CAA4C;IAC5C,6CAA6C;IAC7C,8CAA8C;IAC9C,sCAAsC;IACtC,sCAAsC;IACtC,uCAAuC;
|
|
1
|
+
{"version":3,"file":"supergraphs.js","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -59,4 +59,41 @@ export const ARGUMENT_COMPOSITION_STRATEGIES = {
|
|
|
59
59
|
return acc.concat(newValues);
|
|
60
60
|
}, []),
|
|
61
61
|
},
|
|
62
|
+
NULLABLE_AND: {
|
|
63
|
+
name: 'NULLABLE_AND',
|
|
64
|
+
isTypeSupported: supportFixedTypes((schema: Schema) => [schema.booleanType()]),
|
|
65
|
+
mergeValues: (values: (boolean | null | undefined)[]) => values.reduce((acc, next) => {
|
|
66
|
+
if (acc === null || acc === undefined) {
|
|
67
|
+
return next;
|
|
68
|
+
} else if (next === null || next === undefined) {
|
|
69
|
+
return acc;
|
|
70
|
+
} else {
|
|
71
|
+
return acc && next;
|
|
72
|
+
}
|
|
73
|
+
}, undefined),
|
|
74
|
+
},
|
|
75
|
+
NULLABLE_MAX: {
|
|
76
|
+
name: 'NULLABLE_MAX',
|
|
77
|
+
isTypeSupported: supportFixedTypes((schema: Schema) => [schema.intType(), new NonNullType(schema.intType())]),
|
|
78
|
+
mergeValues: (values: any[]) => values.reduce((a: any, b: any) => a !== undefined && b !== undefined ? Math.max(a, b) : a ?? b, undefined),
|
|
79
|
+
},
|
|
80
|
+
NULLABLE_UNION: {
|
|
81
|
+
name: 'NULLABLE_UNION',
|
|
82
|
+
isTypeSupported: (_: Schema, type: InputType) => ({ valid: isListType(type) }),
|
|
83
|
+
mergeValues: (values: any[]) => {
|
|
84
|
+
if (values.every((v) => v === undefined)) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const combined = new Set();
|
|
89
|
+
for (const subgraphValues of values) {
|
|
90
|
+
if (Array.isArray(subgraphValues)) {
|
|
91
|
+
for (const value of subgraphValues) {
|
|
92
|
+
combined.add(value);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return Array.from(combined);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
62
99
|
}
|