@apollo/gateway 0.26.0-alpha.2 → 0.26.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/CHANGELOG.md +16 -0
- package/dist/config.d.ts +2 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/datasources/RemoteGraphQLDataSource.d.ts.map +1 -1
- package/dist/datasources/RemoteGraphQLDataSource.js +6 -5
- package/dist/datasources/RemoteGraphQLDataSource.js.map +1 -1
- package/dist/executeQueryPlan.d.ts +1 -1
- package/dist/executeQueryPlan.d.ts.map +1 -1
- package/dist/index.d.ts +4 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -20
- package/dist/index.js.map +1 -1
- package/dist/loadServicesFromRemoteEndpoint.d.ts +8 -8
- package/dist/loadServicesFromRemoteEndpoint.d.ts.map +1 -1
- package/dist/loadServicesFromRemoteEndpoint.js +3 -3
- package/dist/loadServicesFromRemoteEndpoint.js.map +1 -1
- package/dist/operationContext.d.ts +17 -0
- package/dist/operationContext.d.ts.map +1 -0
- package/dist/{buildQueryPlan.js → operationContext.js} +3 -19
- package/dist/operationContext.js.map +1 -0
- package/dist/utilities/assert.d.ts +2 -0
- package/dist/utilities/assert.d.ts.map +1 -0
- package/dist/utilities/assert.js +10 -0
- package/dist/utilities/assert.js.map +1 -0
- package/dist/utilities/graphql.d.ts +0 -1
- package/dist/utilities/graphql.d.ts.map +1 -1
- package/dist/utilities/graphql.js +6 -9
- package/dist/utilities/graphql.js.map +1 -1
- package/package.json +8 -8
- package/src/__tests__/buildQueryPlan.test.ts +28 -76
- package/src/__tests__/executeQueryPlan.test.ts +22 -58
- package/src/__tests__/execution-utils.ts +8 -9
- package/src/__tests__/gateway/queryPlanCache.test.ts +3 -6
- package/src/__tests__/integration/configuration.test.ts +96 -0
- package/src/__tests__/integration/nockMocks.ts +1 -1
- package/src/__tests__/loadServicesFromRemoteEndpoint.test.ts +5 -1
- package/src/__tests__/loadSupergraphSdlFromStorage.test.ts +4 -4
- package/src/__tests__/queryPlanCucumber.test.ts +4 -8
- package/src/config.ts +8 -6
- package/src/datasources/RemoteGraphQLDataSource.ts +7 -6
- package/src/executeQueryPlan.ts +1 -1
- package/src/index.ts +16 -33
- package/src/loadServicesFromRemoteEndpoint.ts +12 -10
- package/src/{buildQueryPlan.ts → operationContext.ts} +6 -35
- package/src/utilities/assert.ts +14 -0
- package/src/utilities/graphql.ts +16 -9
- package/dist/buildQueryPlan.d.ts +0 -17
- package/dist/buildQueryPlan.d.ts.map +0 -1
- package/dist/buildQueryPlan.js.map +0 -1
package/src/utilities/graphql.ts
CHANGED
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
NamedTypeNode,
|
|
11
11
|
OperationDefinitionNode,
|
|
12
12
|
parse,
|
|
13
|
-
print,
|
|
14
13
|
SelectionNode,
|
|
15
14
|
TypeNode,
|
|
16
15
|
} from 'graphql';
|
|
16
|
+
import { assert } from './assert';
|
|
17
17
|
|
|
18
18
|
export function getResponseName(node: FieldNode): string {
|
|
19
19
|
return node.alias ? node.alias.value : node.name.value;
|
|
@@ -42,13 +42,20 @@ export function astFromType(type: GraphQLType): TypeNode {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
/**
|
|
46
|
+
* For lack of a "home of federation utilities", this function is copy/pasted
|
|
47
|
+
* verbatim across the federation, gateway, and query-planner packages. Any changes
|
|
48
|
+
* made here should be reflected in the other two locations as well.
|
|
49
|
+
*
|
|
50
|
+
* @param source A string representing a FieldSet
|
|
51
|
+
* @returns A parsed FieldSet
|
|
52
|
+
*/
|
|
51
53
|
export function parseSelections(source: string): ReadonlyArray<SelectionNode> {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
const parsed = parse(`{${source}}`);
|
|
55
|
+
assert(
|
|
56
|
+
parsed.definitions.length === 1,
|
|
57
|
+
`Invalid FieldSet provided: '${source}'. FieldSets may not contain operations within them.`,
|
|
58
|
+
);
|
|
59
|
+
return (parsed.definitions[0] as OperationDefinitionNode).selectionSet
|
|
60
|
+
.selections;
|
|
54
61
|
}
|
package/dist/buildQueryPlan.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { DocumentNode, GraphQLSchema } from 'graphql';
|
|
2
|
-
import { OperationContext } from './';
|
|
3
|
-
import { QueryPlan, QueryPlannerPointer } from '@apollo/query-planner';
|
|
4
|
-
export interface BuildQueryPlanOptions {
|
|
5
|
-
autoFragmentization: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare function buildQueryPlan(operationContext: OperationContext, options?: BuildQueryPlanOptions): QueryPlan;
|
|
8
|
-
interface BuildOperationContextOptions {
|
|
9
|
-
schema: GraphQLSchema;
|
|
10
|
-
operationDocument: DocumentNode;
|
|
11
|
-
operationString: string;
|
|
12
|
-
queryPlannerPointer: QueryPlannerPointer;
|
|
13
|
-
operationName?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare function buildOperationContext({ schema, operationDocument, operationString, queryPlannerPointer, operationName, }: BuildOperationContextOptions): OperationContext;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=buildQueryPlan.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildQueryPlan.d.ts","sourceRoot":"","sources":["../src/buildQueryPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,aAAa,EAId,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAgB,SAAS,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAErF,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,GAAE,qBAAsD,GAC9D,SAAS,CAOX;AAGD,UAAU,4BAA4B;IACpC,MAAM,EAAE,aAAa,CAAC;IACtB,iBAAiB,EAAE,YAAY,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,EAAE,4BAA4B,GAAG,gBAAgB,CAuDjD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildQueryPlan.js","sourceRoot":"","sources":["../src/buildQueryPlan.ts"],"names":[],"mappings":";;;AAAA,qCAQiB;AAEjB,yDAAqF;AAMrF,SAAgB,cAAc,CAC5B,gBAAkC,EAClC,UAAiC,EAAE,mBAAmB,EAAE,KAAK,EAAE;IAG/D,OAAO,4BAAY,CACjB,gBAAgB,CAAC,mBAAmB,EACpC,gBAAgB,CAAC,eAAe,EAChC,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,wCAUC;AASA,CAAC;AAEF,SAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa,GACgB;IAC7B,IAAI,SAA8C,CAAC;IACnD,IAAI,cAAc,GAAW,CAAC,CAAC;IAC/B,MAAM,SAAS,GAEX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACjD,QAAQ,UAAU,CAAC,IAAI,EAAE;YACvB,KAAK,cAAI,CAAC,oBAAoB;gBAC5B,cAAc,EAAE,CAAC;gBACjB,IAAI,CAAC,aAAa,IAAI,cAAc,GAAG,CAAC,EAAE;oBACxC,MAAM,IAAI,sBAAY,CACpB,gDAAgD;wBAC9C,sBAAsB,CACzB,CAAC;iBACH;gBACD,IACE,CAAC,aAAa;oBACd,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,EAC5D;oBACA,SAAS,GAAG,UAAU,CAAC;iBACxB;gBACD,MAAM;YACR,KAAK,cAAI,CAAC,mBAAmB;gBAC3B,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;gBAC9C,MAAM;SACT;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,aAAa,EAAE;YACjB,MAAM,IAAI,sBAAY,CAAC,4BAA4B,aAAa,IAAI,CAAC,CAAC;SACvE;aAAM;YACL,MAAM,IAAI,sBAAY,CAAC,4BAA4B,CAAC,CAAC;SACtD;KACF;IAID,MAAM,sBAAsB,GAAG,cAAc,GAAG,CAAC;QAC/C,CAAC,CAAC,eAAK,CAAC;YACN,IAAI,EAAE,cAAI,CAAC,QAAQ;YACnB,WAAW,EAAE;gBACX,SAAS;gBACT,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aAC5B;SACF,CAAC;QACF,CAAC,CAAC,eAAe,CAAC;IAEpB,OAAO;QACL,MAAM;QACN,SAAS;QACT,SAAS;QACT,mBAAmB;QACnB,eAAe,EAAE,sBAAsB;KACxC,CAAC;AACJ,CAAC;AA7DD,sDA6DC"}
|