@wundergraph/composition 0.5.2 → 0.6.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.
Files changed (41) hide show
  1. package/dist/ast/ast.d.ts +21 -3
  2. package/dist/ast/ast.js +23 -11
  3. package/dist/ast/ast.js.map +1 -1
  4. package/dist/ast/utils.d.ts +16 -103
  5. package/dist/ast/utils.js +132 -16
  6. package/dist/ast/utils.js.map +1 -1
  7. package/dist/errors/errors.d.ts +16 -4
  8. package/dist/errors/errors.js +97 -21
  9. package/dist/errors/errors.js.map +1 -1
  10. package/dist/federation/federation-factory.d.ts +28 -22
  11. package/dist/federation/federation-factory.js +611 -429
  12. package/dist/federation/federation-factory.js.map +1 -1
  13. package/dist/federation/utils.d.ts +130 -0
  14. package/dist/federation/utils.js +15 -0
  15. package/dist/federation/utils.js.map +1 -0
  16. package/dist/index.d.ts +2 -1
  17. package/dist/index.js +2 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/normalization/normalization-factory.d.ts +9 -3
  20. package/dist/normalization/normalization-factory.js +221 -75
  21. package/dist/normalization/normalization-factory.js.map +1 -1
  22. package/dist/normalization/utils.d.ts +4 -0
  23. package/dist/normalization/utils.js +12 -5
  24. package/dist/normalization/utils.js.map +1 -1
  25. package/dist/subgraph/field-configuration.d.ts +12 -1
  26. package/dist/subgraph/subgraph.d.ts +2 -2
  27. package/dist/subgraph/subgraph.js +45 -82
  28. package/dist/subgraph/subgraph.js.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/dist/utils/constants.js +26 -8
  31. package/dist/utils/constants.js.map +1 -1
  32. package/dist/utils/string-constants.d.ts +13 -1
  33. package/dist/utils/string-constants.js +15 -2
  34. package/dist/utils/string-constants.js.map +1 -1
  35. package/dist/utils/utils.d.ts +15 -3
  36. package/dist/utils/utils.js +58 -23
  37. package/dist/utils/utils.js.map +1 -1
  38. package/package.json +4 -3
  39. package/dist/federation/federation-result.d.ts +0 -6
  40. package/dist/federation/federation-result.js +0 -3
  41. package/dist/federation/federation-result.js.map +0 -1
package/dist/ast/ast.d.ts CHANGED
@@ -1,9 +1,18 @@
1
- import { BooleanValueNode, ConstValueNode, DirectiveDefinitionNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, EnumValueNode, FieldDefinitionNode, FloatValueNode, InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, IntValueNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, ScalarTypeDefinitionNode, StringValueNode, TypeNode, UnionTypeDefinitionNode } from 'graphql';
2
- import { InterfaceTypeExtensionNode } from 'graphql/index';
1
+ import { BooleanValueNode, ConstDirectiveNode, ConstValueNode, DirectiveDefinitionNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, EnumValueNode, FieldDefinitionNode, FloatValueNode, InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, IntValueNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, ScalarTypeDefinitionNode, StringValueNode, TypeNode, UnionTypeDefinitionNode } from 'graphql';
3
2
  export type ConstValueNodeWithValue = IntValueNode | FloatValueNode | StringValueNode | BooleanValueNode | EnumValueNode;
4
3
  export declare function deepCopyTypeNode(node: TypeNode, parentName: string, fieldName: string): TypeNode;
4
+ export type MutableDirectiveDefinitionNode = {
5
+ arguments?: InputValueDefinitionNode[];
6
+ description?: StringValueNode;
7
+ kind: Kind.DIRECTIVE_DEFINITION;
8
+ locations: NameNode[];
9
+ name: NameNode;
10
+ repeatable: boolean;
11
+ };
12
+ export declare function directiveDefinitionNodeToMutable(node: DirectiveDefinitionNode): MutableDirectiveDefinitionNode;
5
13
  export type MutableEnumTypeDefinitionNode = {
6
14
  description?: StringValueNode;
15
+ directives?: ConstDirectiveNode[];
7
16
  kind: Kind.ENUM_TYPE_DEFINITION;
8
17
  name: NameNode;
9
18
  values: MutableEnumValueDefinitionNode[];
@@ -11,6 +20,7 @@ export type MutableEnumTypeDefinitionNode = {
11
20
  export declare function enumTypeDefinitionNodeToMutable(node: EnumTypeDefinitionNode): MutableEnumTypeDefinitionNode;
12
21
  export type MutableEnumValueDefinitionNode = {
13
22
  description?: StringValueNode;
23
+ directives?: ConstDirectiveNode[];
14
24
  kind: Kind.ENUM_VALUE_DEFINITION;
15
25
  name: NameNode;
16
26
  };
@@ -18,6 +28,7 @@ export declare function enumValueDefinitionNodeToMutable(node: EnumValueDefiniti
18
28
  export type MutableFieldDefinitionNode = {
19
29
  arguments: MutableInputValueDefinitionNode[];
20
30
  description?: StringValueNode;
31
+ directives?: ConstDirectiveNode[];
21
32
  kind: Kind.FIELD_DEFINITION;
22
33
  name: NameNode;
23
34
  type: TypeNode;
@@ -25,6 +36,7 @@ export type MutableFieldDefinitionNode = {
25
36
  export declare function fieldDefinitionNodeToMutable(node: FieldDefinitionNode, parentName: string): MutableFieldDefinitionNode;
26
37
  export type MutableInputObjectTypeDefinitionNode = {
27
38
  description?: StringValueNode;
39
+ directives?: ConstDirectiveNode[];
28
40
  fields: InputValueDefinitionNode[];
29
41
  kind: Kind.INPUT_OBJECT_TYPE_DEFINITION;
30
42
  name: NameNode;
@@ -33,6 +45,7 @@ export declare function inputObjectTypeDefinitionNodeToMutable(node: InputObject
33
45
  export type MutableInputValueDefinitionNode = {
34
46
  defaultValue?: ConstValueNode;
35
47
  description?: StringValueNode;
48
+ directives?: ConstDirectiveNode[];
36
49
  kind: Kind.INPUT_VALUE_DEFINITION;
37
50
  name: NameNode;
38
51
  type: TypeNode;
@@ -40,6 +53,7 @@ export type MutableInputValueDefinitionNode = {
40
53
  export declare function inputValueDefinitionNodeToMutable(node: InputValueDefinitionNode, parentName: string): MutableInputValueDefinitionNode;
41
54
  export type MutableInterfaceTypeDefinitionNode = {
42
55
  description?: StringValueNode;
56
+ directives?: ConstDirectiveNode[];
43
57
  fields: FieldDefinitionNode[];
44
58
  interfaces: NamedTypeNode[];
45
59
  kind: Kind.INTERFACE_TYPE_DEFINITION;
@@ -48,6 +62,7 @@ export type MutableInterfaceTypeDefinitionNode = {
48
62
  export declare function interfaceTypeDefinitionNodeToMutable(node: InterfaceTypeDefinitionNode): MutableInterfaceTypeDefinitionNode;
49
63
  export type MutableObjectTypeDefinitionNode = {
50
64
  description?: StringValueNode;
65
+ directives?: ConstDirectiveNode[];
51
66
  fields: FieldDefinitionNode[];
52
67
  interfaces: NamedTypeNode[];
53
68
  kind: Kind.OBJECT_TYPE_DEFINITION;
@@ -56,6 +71,7 @@ export type MutableObjectTypeDefinitionNode = {
56
71
  export declare function objectTypeDefinitionNodeToMutable(node: ObjectTypeDefinitionNode): MutableObjectTypeDefinitionNode;
57
72
  export type MutableObjectTypeExtensionNode = {
58
73
  description?: StringValueNode;
74
+ directives?: ConstDirectiveNode[];
59
75
  fields: FieldDefinitionNode[];
60
76
  interfaces: NamedTypeNode[];
61
77
  kind: Kind.OBJECT_TYPE_EXTENSION;
@@ -65,6 +81,7 @@ export declare function objectTypeExtensionNodeToMutable(node: ObjectTypeExtensi
65
81
  export declare function objectTypeExtensionNodeToMutableDefinitionNode(node: ObjectTypeExtensionNode): MutableObjectTypeDefinitionNode;
66
82
  export type MutableScalarTypeDefinitionNode = {
67
83
  description?: StringValueNode;
84
+ directives?: ConstDirectiveNode[];
68
85
  kind: Kind.SCALAR_TYPE_DEFINITION;
69
86
  name: NameNode;
70
87
  };
@@ -77,10 +94,11 @@ export type MutableTypeNode = {
77
94
  export declare const maximumTypeNesting = 30;
78
95
  export type MutableUnionTypeDefinitionNode = {
79
96
  description?: StringValueNode;
97
+ directives?: ConstDirectiveNode[];
80
98
  kind: Kind.UNION_TYPE_DEFINITION;
81
99
  name: NameNode;
82
100
  types: NamedTypeNode[];
83
101
  };
84
102
  export declare function unionTypeDefinitionNodeToMutable(node: UnionTypeDefinitionNode): MutableUnionTypeDefinitionNode;
85
- export type MutableTypeDefinitionNode = MutableScalarTypeDefinitionNode | MutableObjectTypeDefinitionNode | MutableInterfaceTypeDefinitionNode | MutableUnionTypeDefinitionNode | MutableEnumTypeDefinitionNode | MutableInputObjectTypeDefinitionNode | DirectiveDefinitionNode;
103
+ export type MutableTypeDefinitionNode = MutableDirectiveDefinitionNode | MutableEnumTypeDefinitionNode | MutableInputObjectTypeDefinitionNode | MutableInterfaceTypeDefinitionNode | MutableObjectTypeDefinitionNode | MutableScalarTypeDefinitionNode | MutableUnionTypeDefinitionNode;
86
104
  export type ObjectLikeTypeDefinitionNode = InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode;
package/dist/ast/ast.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unionTypeDefinitionNodeToMutable = exports.maximumTypeNesting = exports.scalarTypeDefinitionNodeToMutable = exports.objectTypeExtensionNodeToMutableDefinitionNode = exports.objectTypeExtensionNodeToMutable = exports.objectTypeDefinitionNodeToMutable = exports.interfaceTypeDefinitionNodeToMutable = exports.inputValueDefinitionNodeToMutable = exports.inputObjectTypeDefinitionNodeToMutable = exports.fieldDefinitionNodeToMutable = exports.enumValueDefinitionNodeToMutable = exports.enumTypeDefinitionNodeToMutable = exports.deepCopyTypeNode = void 0;
3
+ exports.unionTypeDefinitionNodeToMutable = exports.maximumTypeNesting = exports.scalarTypeDefinitionNodeToMutable = exports.objectTypeExtensionNodeToMutableDefinitionNode = exports.objectTypeExtensionNodeToMutable = exports.objectTypeDefinitionNodeToMutable = exports.interfaceTypeDefinitionNodeToMutable = exports.inputValueDefinitionNodeToMutable = exports.inputObjectTypeDefinitionNodeToMutable = exports.fieldDefinitionNodeToMutable = exports.enumValueDefinitionNodeToMutable = exports.enumTypeDefinitionNodeToMutable = exports.directiveDefinitionNodeToMutable = exports.deepCopyTypeNode = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const errors_1 = require("../errors/errors");
6
+ const utils_1 = require("./utils");
6
7
  function deepCopyFieldsAndInterfaces(node, fields, interfaces) {
7
8
  if (node.fields) {
8
9
  for (const field of node.fields) {
@@ -42,6 +43,17 @@ function deepCopyTypeNode(node, parentName, fieldName) {
42
43
  throw new Error(`Field ${parentName}.${fieldName} has more than 30 layers of nesting, or there is a cyclical error.`);
43
44
  }
44
45
  exports.deepCopyTypeNode = deepCopyTypeNode;
46
+ function directiveDefinitionNodeToMutable(node) {
47
+ return {
48
+ arguments: node.arguments ? [...node.arguments] : undefined,
49
+ description: (0, utils_1.formatDescription)(node.description),
50
+ kind: node.kind,
51
+ locations: [...node.locations],
52
+ name: { ...node.name },
53
+ repeatable: node.repeatable,
54
+ };
55
+ }
56
+ exports.directiveDefinitionNodeToMutable = directiveDefinitionNodeToMutable;
45
57
  function enumTypeDefinitionNodeToMutable(node) {
46
58
  const values = [];
47
59
  if (node.values) {
@@ -50,7 +62,7 @@ function enumTypeDefinitionNodeToMutable(node) {
50
62
  }
51
63
  }
52
64
  return {
53
- description: node.description ? { ...node.description } : undefined,
65
+ description: (0, utils_1.formatDescription)(node.description),
54
66
  kind: node.kind,
55
67
  name: { ...node.name },
56
68
  values,
@@ -59,7 +71,7 @@ function enumTypeDefinitionNodeToMutable(node) {
59
71
  exports.enumTypeDefinitionNodeToMutable = enumTypeDefinitionNodeToMutable;
60
72
  function enumValueDefinitionNodeToMutable(node) {
61
73
  return {
62
- description: node.description ? { ...node.description } : undefined,
74
+ description: (0, utils_1.formatDescription)(node.description),
63
75
  kind: node.kind,
64
76
  name: { ...node.name },
65
77
  };
@@ -69,12 +81,12 @@ function fieldDefinitionNodeToMutable(node, parentName) {
69
81
  const args = [];
70
82
  if (node.arguments) {
71
83
  for (const argument of node.arguments) {
72
- args.push(inputValueDefinitionNodeToMutable(argument, node.name.value)); // TODO better error for arguments
84
+ args.push(inputValueDefinitionNodeToMutable(argument, node.name.value));
73
85
  }
74
86
  }
75
87
  return {
76
88
  arguments: args,
77
- description: node.description ? { ...node.description } : undefined,
89
+ description: (0, utils_1.formatDescription)(node.description),
78
90
  kind: node.kind,
79
91
  name: { ...node.name },
80
92
  type: deepCopyTypeNode(node.type, parentName, node.name.value),
@@ -89,7 +101,7 @@ function inputObjectTypeDefinitionNodeToMutable(node) {
89
101
  }
90
102
  }
91
103
  return {
92
- description: node.description ? { ...node.description } : undefined,
104
+ description: (0, utils_1.formatDescription)(node.description),
93
105
  fields,
94
106
  kind: node.kind,
95
107
  name: { ...node.name },
@@ -99,7 +111,7 @@ exports.inputObjectTypeDefinitionNodeToMutable = inputObjectTypeDefinitionNodeTo
99
111
  function inputValueDefinitionNodeToMutable(node, parentName) {
100
112
  return {
101
113
  defaultValue: node.defaultValue ? { ...node.defaultValue } : undefined,
102
- description: node.description ? { ...node.description } : undefined,
114
+ description: (0, utils_1.formatDescription)(node.description),
103
115
  kind: node.kind,
104
116
  name: { ...node.name },
105
117
  type: deepCopyTypeNode(node.type, parentName, node.name.value),
@@ -111,7 +123,7 @@ function interfaceTypeDefinitionNodeToMutable(node) {
111
123
  const interfaces = [];
112
124
  deepCopyFieldsAndInterfaces(node, fields, interfaces);
113
125
  return {
114
- description: node.description ? { ...node.description } : undefined,
126
+ description: (0, utils_1.formatDescription)(node.description),
115
127
  fields,
116
128
  interfaces,
117
129
  kind: node.kind,
@@ -124,7 +136,7 @@ function objectTypeDefinitionNodeToMutable(node) {
124
136
  const interfaces = [];
125
137
  deepCopyFieldsAndInterfaces(node, fields, interfaces);
126
138
  return {
127
- description: node.description ? { ...node.description } : undefined,
139
+ description: (0, utils_1.formatDescription)(node.description),
128
140
  fields,
129
141
  interfaces,
130
142
  kind: node.kind,
@@ -158,7 +170,7 @@ function objectTypeExtensionNodeToMutableDefinitionNode(node) {
158
170
  exports.objectTypeExtensionNodeToMutableDefinitionNode = objectTypeExtensionNodeToMutableDefinitionNode;
159
171
  function scalarTypeDefinitionNodeToMutable(node) {
160
172
  return {
161
- description: node.description ? { ...node.description } : undefined,
173
+ description: (0, utils_1.formatDescription)(node.description),
162
174
  kind: graphql_1.Kind.SCALAR_TYPE_DEFINITION,
163
175
  name: { ...node.name },
164
176
  };
@@ -173,7 +185,7 @@ function unionTypeDefinitionNodeToMutable(node) {
173
185
  }
174
186
  }
175
187
  return {
176
- description: node.description ? { ...node.description } : undefined,
188
+ description: (0, utils_1.formatDescription)(node.description),
177
189
  kind: node.kind,
178
190
  name: { ...node.name },
179
191
  types,
@@ -1 +1 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast/ast.ts"],"names":[],"mappings":"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"}
@@ -1,107 +1,10 @@
1
- import { FieldDefinitionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode } from 'graphql';
2
- import { MutableEnumTypeDefinitionNode, MutableEnumValueDefinitionNode, MutableFieldDefinitionNode, MutableInputObjectTypeDefinitionNode, MutableInputValueDefinitionNode, MutableInterfaceTypeDefinitionNode, MutableObjectTypeDefinitionNode, MutableObjectTypeExtensionNode, MutableScalarTypeDefinitionNode, MutableUnionTypeDefinitionNode, ObjectLikeTypeDefinitionNode } from './ast';
3
- export declare enum MergeMethod {
4
- UNION = 0,
5
- INTERSECTION = 1,
6
- CONSISTENT = 2
7
- }
8
- export type EntityContainer = {
9
- fields: Set<string>;
10
- keys: Set<string>;
11
- subgraphs: Set<string>;
12
- };
13
- export type EnumContainer = {
14
- appearances: number;
15
- values: EnumValueMap;
16
- kind: Kind.ENUM_TYPE_DEFINITION;
17
- node: MutableEnumTypeDefinitionNode;
18
- };
19
- export type EnumValueContainer = {
20
- appearances: number;
21
- node: MutableEnumValueDefinitionNode;
22
- };
23
- export type EnumValueMap = Map<string, EnumValueContainer>;
24
- export type FieldContainer = {
25
- appearances: number;
26
- arguments: InputValueMap;
27
- isShareable: boolean;
28
- node: MutableFieldDefinitionNode;
29
- rootTypeName: string;
30
- subgraphs: Set<string>;
31
- subgraphsByShareable: Map<string, boolean>;
32
- };
33
- export type FieldMap = Map<string, FieldContainer>;
34
- export type InputValueContainer = {
35
- appearances: number;
36
- includeDefaultValue: boolean;
37
- node: MutableInputValueDefinitionNode;
38
- };
39
- export type InputValueMap = Map<string, InputValueContainer>;
40
- export type InputObjectContainer = {
41
- appearances: number;
42
- fields: InputValueMap;
43
- kind: Kind.INPUT_OBJECT_TYPE_DEFINITION;
44
- node: MutableInputObjectTypeDefinitionNode;
45
- };
46
- export type InterfaceContainer = {
47
- appearances: number;
48
- fields: FieldMap;
49
- interfaces: Set<string>;
50
- kind: Kind.INTERFACE_TYPE_DEFINITION;
51
- node: MutableInterfaceTypeDefinitionNode;
52
- subgraphs: Set<string>;
53
- };
54
- export type ObjectContainer = {
55
- appearances: number;
56
- fields: FieldMap;
57
- entityKeys: Set<string>;
58
- interfaces: Set<string>;
59
- isRootType: boolean;
60
- kind: Kind.OBJECT_TYPE_DEFINITION;
61
- node: MutableObjectTypeDefinitionNode;
62
- subgraphs: Set<string>;
63
- };
64
- export type ObjectExtensionContainer = {
65
- appearances: number;
66
- fields: FieldMap;
67
- entityKeys: Set<string>;
68
- interfaces: Set<string>;
69
- isRootType: boolean;
70
- kind: Kind.OBJECT_TYPE_EXTENSION;
71
- node: MutableObjectTypeExtensionNode;
72
- subgraphs: Set<string>;
73
- };
74
- export type RootTypeField = {
75
- inlineFragment: string;
76
- path: string;
77
- name: string;
78
- parentTypeName: string;
79
- responseType: string;
80
- rootTypeName: string;
81
- subgraphs: Set<string>;
82
- };
83
- export type PotentiallyUnresolvableField = {
84
- fieldContainer: FieldContainer;
85
- fullResolverPaths: string[];
86
- rootTypeField: RootTypeField;
87
- };
88
- export type ScalarContainer = {
89
- appearances: number;
90
- kind: Kind.SCALAR_TYPE_DEFINITION;
91
- node: MutableScalarTypeDefinitionNode;
92
- };
93
- export type UnionContainer = {
94
- appearances: number;
95
- kind: Kind.UNION_TYPE_DEFINITION;
96
- members: Set<string>;
97
- node: MutableUnionTypeDefinitionNode;
98
- };
99
- export type ParentContainer = EnumContainer | InputObjectContainer | InterfaceContainer | ObjectContainer | UnionContainer | ScalarContainer;
100
- export type ExtensionContainer = ObjectExtensionContainer;
101
- export type ParentMap = Map<string, ParentContainer>;
1
+ import { FieldDefinitionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, StringValueNode, UnionTypeExtensionNode } from 'graphql';
2
+ import { MutableEnumValueDefinitionNode, MutableFieldDefinitionNode, MutableInputValueDefinitionNode, MutableTypeDefinitionNode, ObjectLikeTypeDefinitionNode } from './ast';
3
+ import { UnionTypeDefinitionNode } from 'graphql/index';
4
+ import { DirectiveContainer, NodeContainer, ParentContainer } from '../federation/utils';
102
5
  export declare function isObjectLikeNodeEntity(node: ObjectLikeTypeDefinitionNode): boolean;
103
6
  export declare function isNodeExtension(node: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode): boolean;
104
- export declare function extractEntityKeys(node: ObjectTypeDefinitionNode | ObjectTypeExtensionNode, keySet: Set<string>): Set<string>;
7
+ export declare function extractEntityKeys(node: ObjectTypeDefinitionNode | ObjectTypeExtensionNode, keySet: Set<string>, errors: Error[]): Set<string>;
105
8
  export type EntityKey = {
106
9
  nestedKeys?: EntityKey[];
107
10
  parent: string;
@@ -121,10 +24,20 @@ export declare function extractInterfaces(node: InterfaceTypeDefinitionNode | In
121
24
  export declare function isNodeShareable(node: ObjectTypeDefinitionNode | ObjectTypeExtensionNode | FieldDefinitionNode): boolean;
122
25
  export declare function areBaseAndExtensionKindsCompatible(baseKind: Kind, extensionKind: Kind, typeName: string): boolean;
123
26
  export declare function stringToNameNode(value: string): NameNode;
124
- export declare function stringToNameNodes(values: string[]): NameNode[];
27
+ export declare function stringArrayToNameNodeArray(values: string[]): NameNode[];
28
+ export declare function setToNameNodeArray(set: Set<string>): NameNode[];
125
29
  export declare function stringToNamedTypeNode(value: string): NamedTypeNode;
126
30
  export declare function setToNamedTypeNodeArray(set: Set<string>): NamedTypeNode[];
127
31
  export declare function nodeKindToDirectiveLocation(kind: Kind): string;
128
32
  export declare const operationTypeNodeToDefaultType: Map<OperationTypeNode, string>;
129
33
  export declare function isKindAbstract(kind: Kind): boolean;
130
34
  export declare function getInlineFragmentString(parentTypeName: string): string;
35
+ export declare function extractNameNodeStringsToSet(nodes: readonly NameNode[] | NameNode[], set: Set<string>): Set<string>;
36
+ export declare function extractExecutableDirectiveLocations(nodes: readonly NameNode[] | NameNode[], set: Set<string>): Set<string>;
37
+ export declare function mergeExecutableDirectiveLocations(nodes: readonly NameNode[] | NameNode[], directiveContainer: DirectiveContainer): Set<string>;
38
+ export declare function pushPersistedDirectivesToNode(container: NodeContainer): MutableInputValueDefinitionNode | import("./ast").MutableEnumTypeDefinitionNode | MutableEnumValueDefinitionNode | MutableFieldDefinitionNode | import("./ast").MutableInputObjectTypeDefinitionNode | import("./ast").MutableInterfaceTypeDefinitionNode | import("./ast").MutableObjectTypeDefinitionNode | import("./ast").MutableScalarTypeDefinitionNode | import("./ast").MutableUnionTypeDefinitionNode;
39
+ export declare function getNodeWithPersistedDirectives(container: ParentContainer): import("./ast").MutableEnumTypeDefinitionNode | import("./ast").MutableInputObjectTypeDefinitionNode | import("./ast").MutableInterfaceTypeDefinitionNode | import("./ast").MutableObjectTypeDefinitionNode | import("./ast").MutableScalarTypeDefinitionNode | import("./ast").MutableUnionTypeDefinitionNode;
40
+ export declare function addConcreteTypesForImplementedInterfaces(node: ObjectTypeDefinitionNode | ObjectTypeExtensionNode | InterfaceTypeDefinitionNode, abstractToConcreteTypeNames: Map<string, Set<string>>): void;
41
+ export declare function addConcreteTypesForUnion(node: UnionTypeDefinitionNode | UnionTypeExtensionNode, abstractToConcreteTypeNames: Map<string, Set<string>>): void;
42
+ export declare function formatDescription(description?: StringValueNode): StringValueNode | undefined;
43
+ export declare function setLongestDescriptionForNode(existingNode: MutableFieldDefinitionNode | MutableEnumValueDefinitionNode | MutableInputValueDefinitionNode | MutableTypeDefinitionNode, newDescription?: StringValueNode): void;
package/dist/ast/utils.js CHANGED
@@ -1,16 +1,11 @@
1
1
  "use strict";
2
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.isNodeShareable = exports.extractInterfaces = exports.getEntityKeyExtractionResults = exports.getEntityKeyExtractionResult = exports.extractEntityKeys = exports.isNodeExtension = exports.isObjectLikeNodeEntity = exports.MergeMethod = void 0;
3
+ exports.setLongestDescriptionForNode = exports.formatDescription = exports.addConcreteTypesForUnion = exports.addConcreteTypesForImplementedInterfaces = exports.getNodeWithPersistedDirectives = exports.pushPersistedDirectivesToNode = exports.mergeExecutableDirectiveLocations = exports.extractExecutableDirectiveLocations = exports.extractNameNodeStringsToSet = exports.getInlineFragmentString = exports.isKindAbstract = exports.operationTypeNodeToDefaultType = exports.nodeKindToDirectiveLocation = exports.setToNamedTypeNodeArray = exports.stringToNamedTypeNode = exports.setToNameNodeArray = exports.stringArrayToNameNodeArray = exports.stringToNameNode = exports.areBaseAndExtensionKindsCompatible = exports.isNodeShareable = exports.extractInterfaces = exports.getEntityKeyExtractionResults = exports.getEntityKeyExtractionResult = exports.extractEntityKeys = exports.isNodeExtension = exports.isObjectLikeNodeEntity = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const string_constants_1 = require("../utils/string-constants");
6
6
  const errors_1 = require("../errors/errors");
7
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 = {}));
8
+ const utils_2 = require("../federation/utils");
14
9
  function isObjectLikeNodeEntity(node) {
15
10
  // Interface entities are currently unsupported
16
11
  if (node.kind === graphql_1.Kind.INTERFACE_TYPE_DEFINITION
@@ -38,14 +33,18 @@ function isNodeExtension(node) {
38
33
  return false;
39
34
  }
40
35
  exports.isNodeExtension = isNodeExtension;
41
- function extractEntityKeys(node, keySet) {
36
+ function extractEntityKeys(node, keySet, errors) {
42
37
  if (!node.directives?.length) {
43
38
  return keySet;
44
39
  }
40
+ const typeName = node.name.value;
45
41
  for (const directive of node.directives) {
46
42
  if (directive.name.value === string_constants_1.KEY) {
47
43
  if (!directive.arguments) {
48
- throw new Error('Entity without arguments'); // TODO
44
+ errors.push((0, errors_1.invalidKeyDirectiveError)(typeName, [
45
+ (0, errors_1.undefinedRequiredArgumentsErrorMessage)(string_constants_1.KEY, typeName, [string_constants_1.NAME])
46
+ ]));
47
+ continue;
49
48
  }
50
49
  for (const arg of directive.arguments) {
51
50
  if (arg.name.value !== string_constants_1.FIELDS) {
@@ -68,8 +67,9 @@ function getEntityKeyExtractionResult(rawEntityKey, parentTypeName) {
68
67
  let currentSegment = '';
69
68
  let segmentEnded = true;
70
69
  let currentKey;
70
+ rawEntityKey = rawEntityKey.replaceAll(',', ' ');
71
71
  for (const char of rawEntityKey) {
72
- currentKey = (0, utils_1.getOrThrowError)(entityKeyMap, keyPath.join('.'));
72
+ currentKey = (0, utils_1.getOrThrowError)(entityKeyMap, keyPath.join('.'), 'entityKeyMap');
73
73
  switch (char) {
74
74
  case ' ':
75
75
  segmentEnded = true;
@@ -131,10 +131,10 @@ function getEntityKeyExtractionResult(rawEntityKey, parentTypeName) {
131
131
  }
132
132
  exports.getEntityKeyExtractionResult = getEntityKeyExtractionResult;
133
133
  function getEntityKeyExtractionResults(node, entityKeyMap) {
134
+ const parentTypeName = node.name.value;
134
135
  if (!node.directives?.length) {
135
- return { entityKeyMap, errors: [new Error('No directives found.')] }; // todo
136
+ return { entityKeyMap, errors: [(0, errors_1.expectedEntityError)(parentTypeName)] };
136
137
  }
137
- const parentTypeName = node.name.value;
138
138
  const rawEntityKeys = new Set();
139
139
  const errorMessages = [];
140
140
  for (const directive of node.directives) {
@@ -234,14 +234,22 @@ function stringToNameNode(value) {
234
234
  };
235
235
  }
236
236
  exports.stringToNameNode = stringToNameNode;
237
- function stringToNameNodes(values) {
237
+ function stringArrayToNameNodeArray(values) {
238
238
  const nameNodes = [];
239
239
  for (const value of values) {
240
240
  nameNodes.push(stringToNameNode(value));
241
241
  }
242
242
  return nameNodes;
243
243
  }
244
- exports.stringToNameNodes = stringToNameNodes;
244
+ exports.stringArrayToNameNodeArray = stringArrayToNameNodeArray;
245
+ function setToNameNodeArray(set) {
246
+ const nameNodes = [];
247
+ for (const value of set) {
248
+ nameNodes.push(stringToNameNode(value));
249
+ }
250
+ return nameNodes;
251
+ }
252
+ exports.setToNameNodeArray = setToNameNodeArray;
245
253
  function stringToNamedTypeNode(value) {
246
254
  return {
247
255
  kind: graphql_1.Kind.NAMED_TYPE,
@@ -267,6 +275,14 @@ function nodeKindToDirectiveLocation(kind) {
267
275
  return string_constants_1.ENUM_VALUE_UPPER;
268
276
  case graphql_1.Kind.FIELD_DEFINITION:
269
277
  return string_constants_1.FIELD_DEFINITION_UPPER;
278
+ case graphql_1.Kind.FRAGMENT_DEFINITION:
279
+ return string_constants_1.FRAGMENT_DEFINITION_UPPER;
280
+ case graphql_1.Kind.FRAGMENT_SPREAD:
281
+ return string_constants_1.FRAGMENT_SPREAD_UPPER;
282
+ case graphql_1.Kind.INLINE_FRAGMENT:
283
+ return string_constants_1.INLINE_FRAGMENT_UPPER;
284
+ case graphql_1.Kind.INPUT_VALUE_DEFINITION:
285
+ return string_constants_1.INPUT_FIELD_DEFINITION_UPPER;
270
286
  case graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION:
271
287
  // intentional fallthrough
272
288
  case graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION:
@@ -290,9 +306,9 @@ function nodeKindToDirectiveLocation(kind) {
290
306
  case graphql_1.Kind.UNION_TYPE_DEFINITION:
291
307
  // intentional fallthrough
292
308
  case graphql_1.Kind.UNION_TYPE_EXTENSION:
293
- return string_constants_1.SCHEMA_UPPER;
309
+ return string_constants_1.UNION_UPPER;
294
310
  default:
295
- throw new Error(`Unknown Kind "${kind}".`); // TODO
311
+ return kind;
296
312
  }
297
313
  }
298
314
  exports.nodeKindToDirectiveLocation = nodeKindToDirectiveLocation;
@@ -309,4 +325,104 @@ function getInlineFragmentString(parentTypeName) {
309
325
  return ` ... on ${parentTypeName} `;
310
326
  }
311
327
  exports.getInlineFragmentString = getInlineFragmentString;
328
+ function extractNameNodeStringsToSet(nodes, set) {
329
+ for (const node of nodes) {
330
+ set.add(node.value);
331
+ }
332
+ return set;
333
+ }
334
+ exports.extractNameNodeStringsToSet = extractNameNodeStringsToSet;
335
+ function extractExecutableDirectiveLocations(nodes, set) {
336
+ for (const node of nodes) {
337
+ const name = node.value;
338
+ if (utils_2.EXECUTABLE_DIRECTIVE_LOCATIONS.has(name)) {
339
+ set.add(name);
340
+ }
341
+ }
342
+ return set;
343
+ }
344
+ exports.extractExecutableDirectiveLocations = extractExecutableDirectiveLocations;
345
+ function mergeExecutableDirectiveLocations(nodes, directiveContainer) {
346
+ const mergedSet = new Set();
347
+ for (const node of nodes) {
348
+ const name = node.value;
349
+ if (directiveContainer.executableLocations.has(name)) {
350
+ mergedSet.add(name);
351
+ }
352
+ }
353
+ directiveContainer.executableLocations = mergedSet;
354
+ return mergedSet;
355
+ }
356
+ exports.mergeExecutableDirectiveLocations = mergeExecutableDirectiveLocations;
357
+ function pushPersistedDirectivesToNode(container) {
358
+ const persistedDirectives = [...container.directives.tags.values()];
359
+ for (const directives of container.directives.directives.values()) {
360
+ persistedDirectives.push(...directives);
361
+ }
362
+ container.node.directives = persistedDirectives;
363
+ return container.node;
364
+ }
365
+ exports.pushPersistedDirectivesToNode = pushPersistedDirectivesToNode;
366
+ function getNodeWithPersistedDirectives(container) {
367
+ pushPersistedDirectivesToNode(container);
368
+ return container.node;
369
+ }
370
+ exports.getNodeWithPersistedDirectives = getNodeWithPersistedDirectives;
371
+ function addConcreteTypesForImplementedInterfaces(node, abstractToConcreteTypeNames) {
372
+ if (!node.interfaces || node.interfaces.length < 1) {
373
+ return;
374
+ }
375
+ const concreteTypeName = node.name.value;
376
+ for (const iFace of node.interfaces) {
377
+ const interfaceName = iFace.name.value;
378
+ const concreteTypes = abstractToConcreteTypeNames.get(interfaceName);
379
+ if (concreteTypes) {
380
+ concreteTypes.add(concreteTypeName);
381
+ }
382
+ else {
383
+ abstractToConcreteTypeNames.set(interfaceName, new Set([concreteTypeName]));
384
+ }
385
+ }
386
+ }
387
+ exports.addConcreteTypesForImplementedInterfaces = addConcreteTypesForImplementedInterfaces;
388
+ function addConcreteTypesForUnion(node, abstractToConcreteTypeNames) {
389
+ if (!node.types || node.types.length < 1) {
390
+ return;
391
+ }
392
+ const unionName = node.name.value;
393
+ for (const member of node.types) {
394
+ const memberName = member.name.value;
395
+ const concreteTypes = abstractToConcreteTypeNames.get(unionName);
396
+ if (concreteTypes) {
397
+ concreteTypes.add(memberName);
398
+ }
399
+ else {
400
+ abstractToConcreteTypeNames.set(unionName, new Set([memberName]));
401
+ }
402
+ }
403
+ }
404
+ exports.addConcreteTypesForUnion = addConcreteTypesForUnion;
405
+ function formatDescription(description) {
406
+ if (!description) {
407
+ return description;
408
+ }
409
+ let value = description.value;
410
+ if (description.block) {
411
+ const lines = value.split('\n');
412
+ if (lines.length > 1) {
413
+ value = lines.map((line) => line.trimStart()).join('\n');
414
+ }
415
+ }
416
+ return { ...description, value: value, block: true };
417
+ }
418
+ exports.formatDescription = formatDescription;
419
+ function setLongestDescriptionForNode(existingNode, newDescription) {
420
+ if (!newDescription) {
421
+ return;
422
+ }
423
+ if (!existingNode.description || newDescription.value.length > existingNode.description.value.length) {
424
+ existingNode.description = { ...newDescription, block: true };
425
+ }
426
+ }
427
+ exports.setLongestDescriptionForNode = setLongestDescriptionForNode;
312
428
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"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"}