@graphitation/supermassive 3.0.0-alpha.5 → 3.0.0-alpha.7

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 (94) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +18 -2
  3. package/lib/benchmarks/index.js.map +2 -2
  4. package/lib/benchmarks/index.mjs.map +2 -2
  5. package/lib/collectFields.d.ts.map +1 -1
  6. package/lib/collectFields.js +6 -5
  7. package/lib/collectFields.js.map +2 -2
  8. package/lib/collectFields.mjs +6 -5
  9. package/lib/collectFields.mjs.map +2 -2
  10. package/lib/executeWithoutSchema.d.ts +1 -3
  11. package/lib/executeWithoutSchema.d.ts.map +1 -1
  12. package/lib/executeWithoutSchema.js +153 -69
  13. package/lib/executeWithoutSchema.js.map +2 -2
  14. package/lib/executeWithoutSchema.mjs +143 -71
  15. package/lib/executeWithoutSchema.mjs.map +2 -2
  16. package/lib/index.d.ts +4 -4
  17. package/lib/index.d.ts.map +1 -1
  18. package/lib/index.js +5 -1
  19. package/lib/index.js.map +2 -2
  20. package/lib/index.mjs +10 -2
  21. package/lib/index.mjs.map +2 -2
  22. package/lib/schema/definition.d.ts +43 -33
  23. package/lib/schema/definition.d.ts.map +1 -1
  24. package/lib/schema/definition.js +284 -9
  25. package/lib/schema/definition.js.map +2 -2
  26. package/lib/schema/definition.mjs +284 -55
  27. package/lib/schema/definition.mjs.map +3 -3
  28. package/lib/schema/directives.d.ts.map +1 -1
  29. package/lib/schema/directives.js +3 -3
  30. package/lib/schema/directives.js.map +2 -2
  31. package/lib/schema/directives.mjs +4 -4
  32. package/lib/schema/directives.mjs.map +2 -2
  33. package/lib/schema/reference.d.ts +3 -1
  34. package/lib/schema/reference.d.ts.map +1 -1
  35. package/lib/schema/reference.js.map +2 -2
  36. package/lib/schema/reference.mjs.map +2 -2
  37. package/lib/schema/resolvers.d.ts +10 -4
  38. package/lib/schema/resolvers.d.ts.map +1 -1
  39. package/lib/schema/resolvers.js +92 -9
  40. package/lib/schema/resolvers.js.map +2 -2
  41. package/lib/schema/resolvers.mjs +99 -9
  42. package/lib/schema/resolvers.mjs.map +2 -2
  43. package/lib/types.d.ts +25 -2
  44. package/lib/types.d.ts.map +1 -1
  45. package/lib/types.js.map +1 -1
  46. package/lib/utilities/coerceInputValue.d.ts +3 -3
  47. package/lib/utilities/coerceInputValue.d.ts.map +1 -1
  48. package/lib/utilities/coerceInputValue.js +17 -12
  49. package/lib/utilities/coerceInputValue.js.map +2 -2
  50. package/lib/utilities/coerceInputValue.mjs +22 -12
  51. package/lib/utilities/coerceInputValue.mjs.map +2 -2
  52. package/lib/utilities/decodeASTSchema.d.ts.map +1 -1
  53. package/lib/utilities/decodeASTSchema.js +32 -40
  54. package/lib/utilities/decodeASTSchema.js.map +2 -2
  55. package/lib/utilities/decodeASTSchema.mjs +51 -49
  56. package/lib/utilities/decodeASTSchema.mjs.map +2 -2
  57. package/lib/utilities/encodeASTSchema.d.ts.map +1 -1
  58. package/lib/utilities/encodeASTSchema.js +16 -20
  59. package/lib/utilities/encodeASTSchema.js.map +2 -2
  60. package/lib/utilities/encodeASTSchema.mjs +22 -21
  61. package/lib/utilities/encodeASTSchema.mjs.map +2 -2
  62. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.d.ts.map +1 -1
  63. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js +20 -22
  64. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js.map +2 -2
  65. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs +35 -29
  66. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs.map +2 -2
  67. package/lib/utilities/mergeResolvers.js +1 -2
  68. package/lib/utilities/mergeResolvers.js.map +2 -2
  69. package/lib/utilities/mergeResolvers.mjs +1 -2
  70. package/lib/utilities/mergeResolvers.mjs.map +2 -2
  71. package/lib/utilities/mergeSchemaDefinitions.d.ts.map +1 -1
  72. package/lib/utilities/mergeSchemaDefinitions.js +18 -28
  73. package/lib/utilities/mergeSchemaDefinitions.js.map +2 -2
  74. package/lib/utilities/mergeSchemaDefinitions.mjs +28 -34
  75. package/lib/utilities/mergeSchemaDefinitions.mjs.map +2 -2
  76. package/lib/utilities/valueFromAST.d.ts +3 -3
  77. package/lib/utilities/valueFromAST.d.ts.map +1 -1
  78. package/lib/utilities/valueFromAST.js +23 -10
  79. package/lib/utilities/valueFromAST.js.map +2 -2
  80. package/lib/utilities/valueFromAST.mjs +13 -10
  81. package/lib/utilities/valueFromAST.mjs.map +2 -2
  82. package/lib/values.d.ts +2 -2
  83. package/lib/values.d.ts.map +1 -1
  84. package/lib/values.js +14 -14
  85. package/lib/values.js.map +2 -2
  86. package/lib/values.mjs +21 -14
  87. package/lib/values.mjs.map +2 -2
  88. package/package.json +1 -1
  89. package/lib/schema/fragment.d.ts +0 -63
  90. package/lib/schema/fragment.d.ts.map +0 -1
  91. package/lib/schema/fragment.js +0 -295
  92. package/lib/schema/fragment.js.map +0 -7
  93. package/lib/schema/fragment.mjs +0 -292
  94. package/lib/schema/fragment.mjs.map +0 -7
@@ -15,13 +15,21 @@ import {
15
15
  visitWithTypeInfo
16
16
  } from "graphql";
17
17
  import {
18
- DirectiveKeys,
19
- FieldKeys,
20
- InputObjectKeys,
21
- InputValueKeys,
22
- InterfaceKeys,
23
- ObjectKeys,
24
- TypeKind
18
+ createEnumTypeDefinition,
19
+ createInputObjectTypeDefinition,
20
+ createInterfaceTypeDefinition,
21
+ createObjectTypeDefinition,
22
+ createScalarTypeDefinition,
23
+ createUnionTypeDefinition,
24
+ getDirectiveDefinitionArgs,
25
+ getDirectiveName,
26
+ getFieldArgs,
27
+ getFields,
28
+ getFieldTypeReference,
29
+ getInputObjectFields,
30
+ getInputValueTypeReference,
31
+ isUnionTypeDefinition,
32
+ setDirectiveDefinitionArgs
25
33
  } from "../schema/definition.mjs";
26
34
  import { isKnownDirective } from "../schema/directives.mjs";
27
35
  import { makeReadableErrorPath } from "./makeReadableErrorPath.mjs";
@@ -43,19 +51,15 @@ function extractMinimalViableSchemaForRequestDocument(schema, requestDocument) {
43
51
  const parentType = typeInfo.getParentType();
44
52
  assertCompositeType(parentType, node, ancestors);
45
53
  const typeDef = addCompositeType(types, parentType);
46
- if (typeDef[0] === TypeKind.UNION || node.name.value === "__typename") {
54
+ if (isUnionTypeDefinition(typeDef) || node.name.value === "__typename") {
47
55
  return;
48
56
  }
49
57
  const field = typeInfo.getFieldDef();
50
58
  assertExistingField(field, node, ancestors);
51
59
  assertAllArgumentsAreDefined(field, node, ancestors);
52
60
  const fieldDef = addField(typeDef, field, node);
53
- if (Array.isArray(fieldDef)) {
54
- addReferencedOutputType(schema, types, fieldDef[FieldKeys.type]);
55
- addReferencedInputTypes(schema, types, fieldDef[FieldKeys.arguments]);
56
- } else {
57
- addReferencedOutputType(schema, types, fieldDef);
58
- }
61
+ addReferencedOutputType(schema, types, getFieldTypeReference(fieldDef));
62
+ addReferencedInputTypes(schema, types, getFieldArgs(fieldDef));
59
63
  },
60
64
  Directive(node, _key, _parent, _path) {
61
65
  if (isKnownDirective(node.name.value)) {
@@ -108,8 +112,11 @@ function addReferencedOutputType(schema, types, typeRef) {
108
112
  }
109
113
  }
110
114
  function addReferencedInputTypes(schema, types, inputValues) {
115
+ if (!inputValues) {
116
+ return;
117
+ }
111
118
  for (const inputValueDef of Object.values(inputValues)) {
112
- const typeRef = Array.isArray(inputValueDef) ? inputValueDef[InputValueKeys.type] : inputValueDef;
119
+ const typeRef = getInputValueTypeReference(inputValueDef);
113
120
  const name = typeNameFromReference(typeRef);
114
121
  const schemaType = schema.getType(name);
115
122
  if (!schemaType) {
@@ -124,7 +131,7 @@ function addReferencedInputTypes(schema, types, inputValues) {
124
131
  addReferencedInputTypes(
125
132
  schema,
126
133
  types,
127
- inputObjectDef[InputObjectKeys.fields]
134
+ getInputObjectFields(inputObjectDef)
128
135
  );
129
136
  } else if (isEnumType(schemaType)) {
130
137
  types[name] = encodeEnumType(schemaType);
@@ -142,11 +149,11 @@ function addCompositeType(types, type) {
142
149
  return types[type.name] = encodeCompositeType(type);
143
150
  }
144
151
  function addField(type, field, fieldNode) {
145
- var _a;
146
- const fields = type[0] === TypeKind.OBJECT ? type[ObjectKeys.fields] : type[InterfaceKeys.fields];
152
+ var _a, _b;
153
+ const fields = getFields(type);
147
154
  const existingFieldDef = fields[field.name];
148
- const previouslyAddedArgs = Array.isArray(existingFieldDef) ? existingFieldDef[FieldKeys.arguments] : /* @__PURE__ */ Object.create(null);
149
- const nodeArgs = new Set((_a = fieldNode.arguments) == null ? void 0 : _a.map((arg) => arg.name.value));
155
+ const previouslyAddedArgs = (_a = getFieldArgs(existingFieldDef)) != null ? _a : /* @__PURE__ */ Object.create(null);
156
+ const nodeArgs = new Set((_b = fieldNode.arguments) == null ? void 0 : _b.map((arg) => arg.name.value));
150
157
  const argsFilter = (argDef) => Boolean(
151
158
  previouslyAddedArgs[argDef.name] || isNonNullType(argDef.type) || argDef.defaultValue !== void 0 || nodeArgs.has(argDef.name)
152
159
  );
@@ -155,36 +162,35 @@ function addField(type, field, fieldNode) {
155
162
  function addDirective(directives, directive, node) {
156
163
  var _a;
157
164
  const name = directive.name;
158
- let tuple = directives.find((d) => d[DirectiveKeys.name] === name);
165
+ let tuple = directives.find((d) => getDirectiveName(d) === name);
159
166
  if (!tuple) {
160
167
  tuple = [directive.name];
161
168
  directives.push(tuple);
162
169
  }
163
- const previouslyAddedArgs = tuple[DirectiveKeys.arguments];
170
+ const previouslyAddedArgs = getDirectiveDefinitionArgs(tuple);
164
171
  const nodeArgs = new Set((_a = node.arguments) == null ? void 0 : _a.map((arg) => arg.name.value));
165
172
  const argsFilter = (argDef) => Boolean(
166
173
  (previouslyAddedArgs == null ? void 0 : previouslyAddedArgs[argDef.name]) || isNonNullType(argDef.type) || argDef.defaultValue !== void 0 || nodeArgs.has(argDef.name)
167
174
  );
168
175
  const [hasArgs, argsRecord] = encodeArguments(directive.args, argsFilter);
169
176
  if (hasArgs) {
170
- tuple[DirectiveKeys.arguments] = argsRecord;
177
+ setDirectiveDefinitionArgs(tuple, argsRecord);
171
178
  }
172
179
  return tuple;
173
180
  }
174
181
  function encodeCompositeType(type) {
175
182
  if (isUnionType(type)) {
176
- return [TypeKind.UNION, type.getTypes().map((type2) => type2.name)];
183
+ return createUnionTypeDefinition(type.getTypes().map((type2) => type2.name));
177
184
  }
178
185
  const ifaces = type.getInterfaces().map((iface) => iface.name);
179
- const typeKind = isObjectType(type) ? TypeKind.OBJECT : TypeKind.INTERFACE;
180
- return ifaces.length ? [typeKind, {}, ifaces] : [typeKind, {}];
186
+ return isObjectType(type) ? createObjectTypeDefinition({}, ifaces) : createInterfaceTypeDefinition({}, ifaces);
181
187
  }
182
188
  function encodeInputObjectType(type) {
183
189
  const result = /* @__PURE__ */ Object.create(null);
184
190
  for (const [fieldName, field] of Object.entries(type.getFields())) {
185
191
  result[fieldName] = encodeInputField(field);
186
192
  }
187
- return [TypeKind.INPUT, result];
193
+ return createInputObjectTypeDefinition(result);
188
194
  }
189
195
  function encodeInputField(field) {
190
196
  const typeReference = typeReferenceFromName(field.type.toString());
@@ -209,10 +215,10 @@ function encodeArguments(args, argumentsFilter) {
209
215
  return [hasArgs, argsRecord];
210
216
  }
211
217
  function encodeEnumType(type) {
212
- return [TypeKind.ENUM, type.getValues().map((v) => v.name)];
218
+ return createEnumTypeDefinition(type.getValues().map((v) => v.name));
213
219
  }
214
220
  function encodeScalarType(_type) {
215
- return [TypeKind.SCALAR];
221
+ return createScalarTypeDefinition();
216
222
  }
217
223
  function assertCompositeType(type, node, ancestors) {
218
224
  if (!type || !isCompositeType(type)) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utilities/extractMinimalViableSchemaForRequestDocument.ts"],
4
- "sourcesContent": ["import {\n ASTNode,\n DirectiveNode,\n DocumentNode,\n FieldNode,\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLDirective,\n GraphQLEnumType,\n GraphQLError,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputObjectType,\n GraphQLOutputType,\n GraphQLScalarType,\n GraphQLSchema,\n isCompositeType,\n isEnumType,\n isInputObjectType,\n isNonNullType,\n isObjectType,\n isScalarType,\n isSpecifiedScalarType,\n isUnionType,\n Kind,\n TypeInfo,\n visit,\n visitWithTypeInfo,\n} from \"graphql\";\nimport {\n CompositeTypeTuple,\n DirectiveDefinitionTuple,\n DirectiveKeys,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n FieldKeys,\n InputObjectKeys,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InputValueDefinitionRecord,\n InputValueKeys,\n InterfaceKeys,\n InterfaceTypeDefinitionTuple,\n ObjectKeys,\n ObjectTypeDefinitionTuple,\n ScalarTypeDefinitionTuple,\n SchemaDefinitions,\n TypeDefinitionsRecord,\n TypeKind,\n TypeReference,\n} from \"../schema/definition\";\nimport { isKnownDirective } from \"../schema/directives\";\nimport { makeReadableErrorPath } from \"./makeReadableErrorPath\";\nimport {\n inspectTypeReference,\n typeNameFromReference,\n typeReferenceFromName,\n} from \"../schema/reference\";\nimport { invariant } from \"../jsutils/invariant\";\nimport { Maybe } from \"../jsutils/Maybe\";\n\nexport type ExtractMinimalViableSchemaResult = {\n definitions: SchemaDefinitions;\n unknownDirectives: DirectiveNode[];\n};\n\nexport function extractMinimalViableSchemaForRequestDocument(\n schema: GraphQLSchema,\n requestDocument: DocumentNode,\n): ExtractMinimalViableSchemaResult {\n const types: TypeDefinitionsRecord = Object.create(null);\n const directives: DirectiveDefinitionTuple[] = [];\n const unknownDirectives: DirectiveNode[] = [];\n\n const typeInfo = new TypeInfo(schema);\n visit(\n requestDocument,\n visitWithTypeInfo(typeInfo, {\n Field(node, _key, _parent, _path, ancestors): void {\n const parentType = typeInfo.getParentType();\n assertCompositeType(parentType, node, ancestors);\n\n const typeDef = addCompositeType(types, parentType);\n if (typeDef[0] === TypeKind.UNION || node.name.value === \"__typename\") {\n return;\n }\n const field = typeInfo.getFieldDef();\n assertExistingField(field, node, ancestors);\n assertAllArgumentsAreDefined(field, node, ancestors);\n\n const fieldDef = addField(typeDef, field, node);\n if (Array.isArray(fieldDef)) {\n addReferencedOutputType(schema, types, fieldDef[FieldKeys.type]);\n addReferencedInputTypes(schema, types, fieldDef[FieldKeys.arguments]);\n } else {\n addReferencedOutputType(schema, types, fieldDef);\n }\n },\n Directive(node, _key, _parent, _path) {\n if (isKnownDirective(node.name.value)) {\n return;\n }\n const directive = typeInfo.getDirective();\n if (!directive) {\n // This happens whenever a directive is requested that hasn't been defined in schema\n unknownDirectives.push(node);\n return;\n }\n addDirective(directives, directive, node);\n },\n FragmentDefinition(node, _key, _parent, _path, ancestors): void {\n const type = typeInfo.getType();\n assertCompositeType(type, node, ancestors);\n addCompositeType(types, type);\n },\n InlineFragment(node, _key, _parent, _path, ancestors): void {\n if (node?.typeCondition) {\n const type = typeInfo.getType();\n assertCompositeType(type, node, ancestors);\n addCompositeType(types, type);\n }\n },\n Argument() {\n // Perf: no need to visit arguments - they were handled by Field/Directive visitors\n return false;\n },\n }),\n );\n const definitions = directives.length ? { types, directives } : { types };\n return { definitions, unknownDirectives };\n}\n\nfunction addReferencedOutputType(\n schema: GraphQLSchema,\n types: TypeDefinitionsRecord,\n typeRef: TypeReference,\n) {\n const name = typeNameFromReference(typeRef);\n const schemaType = schema.getType(name);\n\n if (!schemaType) {\n throw new Error(`Type ${name} not found in schema`);\n }\n if (types[name] || isSpecifiedScalarType(schemaType)) {\n // Assuming already added\n return;\n }\n if (isCompositeType(schemaType)) {\n addCompositeType(types, schemaType);\n } else if (isEnumType(schemaType)) {\n types[name] = encodeEnumType(schemaType);\n } else if (isScalarType(schemaType)) {\n types[name] = encodeScalarType(schemaType);\n } else {\n invariant(false, \"Got non-output type: \" + inspectTypeReference(typeRef));\n }\n}\n\nfunction addReferencedInputTypes(\n schema: GraphQLSchema,\n types: TypeDefinitionsRecord,\n inputValues: InputValueDefinitionRecord,\n): void {\n for (const inputValueDef of Object.values(inputValues)) {\n const typeRef = Array.isArray(inputValueDef)\n ? inputValueDef[InputValueKeys.type]\n : inputValueDef;\n\n const name = typeNameFromReference(typeRef);\n const schemaType = schema.getType(name);\n\n if (!schemaType) {\n throw new Error(`Type ${name} not found in schema`);\n }\n if (types[name] || isSpecifiedScalarType(schemaType)) {\n // Assuming already fully added\n continue;\n }\n if (isInputObjectType(schemaType)) {\n const inputObjectDef = encodeInputObjectType(schemaType);\n types[name] = inputObjectDef;\n addReferencedInputTypes(\n schema,\n types,\n inputObjectDef[InputObjectKeys.fields],\n );\n } else if (isEnumType(schemaType)) {\n types[name] = encodeEnumType(schemaType);\n } else if (isScalarType(schemaType)) {\n types[name] = encodeScalarType(schemaType);\n } else {\n invariant(false, \"Got non-input type: \" + inspectTypeReference(typeRef));\n }\n }\n}\n\nfunction addCompositeType(\n types: TypeDefinitionsRecord,\n type: GraphQLCompositeType,\n): CompositeTypeTuple {\n if (types[type.name]) {\n // TODO: double check that the kind match?\n return types[type.name] as CompositeTypeTuple;\n }\n return (types[type.name] = encodeCompositeType(type));\n}\n\nfunction addField(\n type: ObjectTypeDefinitionTuple | InterfaceTypeDefinitionTuple,\n field: GraphQLField<unknown, unknown>,\n fieldNode: FieldNode,\n): FieldDefinition {\n const fields =\n type[0] === TypeKind.OBJECT\n ? type[ObjectKeys.fields]\n : type[InterfaceKeys.fields];\n\n const existingFieldDef: FieldDefinition = fields[field.name];\n const previouslyAddedArgs = Array.isArray(existingFieldDef)\n ? existingFieldDef[FieldKeys.arguments]\n : Object.create(null);\n\n const nodeArgs = new Set(fieldNode.arguments?.map((arg) => arg.name.value));\n\n const argsFilter = (argDef: GraphQLArgument) =>\n Boolean(\n previouslyAddedArgs[argDef.name] ||\n isNonNullType(argDef.type) ||\n argDef.defaultValue !== undefined ||\n nodeArgs.has(argDef.name),\n );\n\n return (fields[field.name] = encodeFieldDef(field, argsFilter));\n}\n\nfunction addDirective(\n directives: DirectiveDefinitionTuple[],\n directive: GraphQLDirective,\n node: DirectiveNode,\n) {\n const name = directive.name;\n let tuple = directives.find((d) => d[DirectiveKeys.name] === name);\n if (!tuple) {\n tuple = [directive.name];\n directives.push(tuple);\n }\n\n const previouslyAddedArgs = tuple[DirectiveKeys.arguments];\n const nodeArgs = new Set(node.arguments?.map((arg) => arg.name.value));\n\n const argsFilter = (argDef: GraphQLArgument) =>\n Boolean(\n previouslyAddedArgs?.[argDef.name] ||\n isNonNullType(argDef.type) ||\n argDef.defaultValue !== undefined ||\n nodeArgs.has(argDef.name),\n );\n const [hasArgs, argsRecord] = encodeArguments(directive.args, argsFilter);\n if (hasArgs) {\n tuple[DirectiveKeys.arguments] = argsRecord;\n }\n return tuple;\n}\n\nfunction encodeCompositeType(type: GraphQLCompositeType): CompositeTypeTuple {\n if (isUnionType(type)) {\n return [TypeKind.UNION, type.getTypes().map((type) => type.name)];\n }\n const ifaces = type.getInterfaces().map((iface) => iface.name);\n const typeKind = isObjectType(type) ? TypeKind.OBJECT : TypeKind.INTERFACE;\n return ifaces.length ? [typeKind, {}, ifaces] : [typeKind, {}];\n}\n\nfunction encodeInputObjectType(\n type: GraphQLInputObjectType,\n): InputObjectTypeDefinitionTuple {\n const result = Object.create(null);\n for (const [fieldName, field] of Object.entries(type.getFields())) {\n result[fieldName] = encodeInputField(field);\n }\n return [TypeKind.INPUT, result];\n}\n\nfunction encodeInputField(field: GraphQLInputField): InputValueDefinition {\n const typeReference = typeReferenceFromName(field.type.toString());\n return field.defaultValue === undefined\n ? typeReference\n : [typeReference, field.defaultValue];\n}\n\nfunction encodeFieldDef(\n field: GraphQLField<unknown, unknown>,\n argumentsFilter?: (arg: GraphQLArgument) => boolean,\n): FieldDefinition {\n const typeReference = typeReferenceFromName(field.type.toString());\n const [hasArgs, argsRecord] = encodeArguments(field.args, argumentsFilter);\n return !hasArgs ? typeReference : [typeReference, argsRecord];\n}\n\nfunction encodeArguments(\n args: ReadonlyArray<GraphQLArgument>,\n argumentsFilter?: (arg: GraphQLArgument) => boolean,\n): [boolean, InputValueDefinitionRecord] {\n let hasArgs = false;\n const argsRecord: InputValueDefinitionRecord = {};\n for (const argDef of args) {\n if (argumentsFilter && !argumentsFilter(argDef)) {\n continue;\n }\n const typeReference = typeReferenceFromName(argDef.type.toString());\n argsRecord[argDef.name] =\n argDef.defaultValue === undefined\n ? typeReference\n : [typeReference, argDef.defaultValue];\n hasArgs = true;\n }\n return [hasArgs, argsRecord];\n}\n\nfunction encodeEnumType(type: GraphQLEnumType): EnumTypeDefinitionTuple {\n return [TypeKind.ENUM, type.getValues().map((v) => v.name)];\n}\n\nfunction encodeScalarType(_type: GraphQLScalarType): ScalarTypeDefinitionTuple {\n return [TypeKind.SCALAR];\n}\n\nfunction assertCompositeType(\n type: Maybe<GraphQLOutputType>,\n node: ASTNode,\n ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>,\n): asserts type is GraphQLCompositeType {\n if (!type || !isCompositeType(type)) {\n const path =\n node.kind === Kind.FIELD\n ? makeReadableErrorPath(ancestors).join(\".\") + \".\" + node.name.value\n : makeReadableErrorPath(ancestors).join(\".\");\n throw new GraphQLError(`Cannot find type for: ${path}`, {\n nodes: node,\n });\n }\n}\n\nfunction assertExistingField(\n field: Maybe<GraphQLField<unknown, unknown>>,\n node: FieldNode,\n ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>,\n): asserts field is GraphQLField<unknown, unknown> {\n if (!field) {\n const path =\n makeReadableErrorPath(ancestors).join(\".\") + \".\" + node.name.value;\n throw new GraphQLError(`Cannot find field: ${path}`, { nodes: node });\n }\n}\n\nfunction assertAllArgumentsAreDefined(\n field: GraphQLField<unknown, unknown> | GraphQLDirective,\n node: FieldNode | DirectiveNode,\n ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>,\n) {\n const defArgs = new Set(field.args.map((arg) => arg.name));\n for (const arg of node.arguments ?? []) {\n if (!defArgs.has(arg.name.value)) {\n const path =\n makeReadableErrorPath(ancestors).join(\".\") +\n \".\" +\n node.name.value +\n `(${arg.name.value}: ...)`;\n throw new GraphQLError(`Cannot find type for argument: ${path}`, {\n nodes: arg,\n });\n }\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n ASTNode,\n DirectiveNode,\n DocumentNode,\n FieldNode,\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLDirective,\n GraphQLEnumType,\n GraphQLError,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputObjectType,\n GraphQLOutputType,\n GraphQLScalarType,\n GraphQLSchema,\n isCompositeType,\n isEnumType,\n isInputObjectType,\n isNonNullType,\n isObjectType,\n isScalarType,\n isSpecifiedScalarType,\n isUnionType,\n Kind,\n TypeInfo,\n visit,\n visitWithTypeInfo,\n} from \"graphql\";\nimport {\n CompositeTypeTuple,\n createEnumTypeDefinition,\n createInputObjectTypeDefinition,\n createInterfaceTypeDefinition,\n createObjectTypeDefinition,\n createScalarTypeDefinition,\n createUnionTypeDefinition,\n DirectiveDefinitionTuple,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n getDirectiveDefinitionArgs,\n getDirectiveName,\n getFieldArgs,\n getFields,\n getFieldTypeReference,\n getInputObjectFields,\n getInputValueTypeReference,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InputValueDefinitionRecord,\n InterfaceTypeDefinitionTuple,\n isUnionTypeDefinition,\n ObjectTypeDefinitionTuple,\n ScalarTypeDefinitionTuple,\n SchemaDefinitions,\n setDirectiveDefinitionArgs,\n TypeDefinitionsRecord,\n} from \"../schema/definition\";\nimport { isKnownDirective } from \"../schema/directives\";\nimport { makeReadableErrorPath } from \"./makeReadableErrorPath\";\nimport {\n inspectTypeReference,\n typeNameFromReference,\n TypeReference,\n typeReferenceFromName,\n} from \"../schema/reference\";\nimport { invariant } from \"../jsutils/invariant\";\nimport { Maybe } from \"../jsutils/Maybe\";\n\nexport type ExtractMinimalViableSchemaResult = {\n definitions: SchemaDefinitions;\n unknownDirectives: DirectiveNode[];\n};\n\nexport function extractMinimalViableSchemaForRequestDocument(\n schema: GraphQLSchema,\n requestDocument: DocumentNode,\n): ExtractMinimalViableSchemaResult {\n const types: TypeDefinitionsRecord = Object.create(null);\n const directives: DirectiveDefinitionTuple[] = [];\n const unknownDirectives: DirectiveNode[] = [];\n\n const typeInfo = new TypeInfo(schema);\n visit(\n requestDocument,\n visitWithTypeInfo(typeInfo, {\n Field(node, _key, _parent, _path, ancestors): void {\n const parentType = typeInfo.getParentType();\n assertCompositeType(parentType, node, ancestors);\n\n const typeDef = addCompositeType(types, parentType);\n if (\n isUnionTypeDefinition(typeDef) ||\n node.name.value === \"__typename\"\n ) {\n return;\n }\n const field = typeInfo.getFieldDef();\n assertExistingField(field, node, ancestors);\n assertAllArgumentsAreDefined(field, node, ancestors);\n\n const fieldDef = addField(typeDef, field, node);\n addReferencedOutputType(schema, types, getFieldTypeReference(fieldDef));\n addReferencedInputTypes(schema, types, getFieldArgs(fieldDef));\n },\n Directive(node, _key, _parent, _path) {\n if (isKnownDirective(node.name.value)) {\n return;\n }\n const directive = typeInfo.getDirective();\n if (!directive) {\n // This happens whenever a directive is requested that hasn't been defined in schema\n unknownDirectives.push(node);\n return;\n }\n addDirective(directives, directive, node);\n },\n FragmentDefinition(node, _key, _parent, _path, ancestors): void {\n const type = typeInfo.getType();\n assertCompositeType(type, node, ancestors);\n addCompositeType(types, type);\n },\n InlineFragment(node, _key, _parent, _path, ancestors): void {\n if (node?.typeCondition) {\n const type = typeInfo.getType();\n assertCompositeType(type, node, ancestors);\n addCompositeType(types, type);\n }\n },\n Argument() {\n // Perf: no need to visit arguments - they were handled by Field/Directive visitors\n return false;\n },\n }),\n );\n const definitions = directives.length ? { types, directives } : { types };\n return { definitions, unknownDirectives };\n}\n\nfunction addReferencedOutputType(\n schema: GraphQLSchema,\n types: TypeDefinitionsRecord,\n typeRef: TypeReference,\n) {\n const name = typeNameFromReference(typeRef);\n const schemaType = schema.getType(name);\n\n if (!schemaType) {\n throw new Error(`Type ${name} not found in schema`);\n }\n if (types[name] || isSpecifiedScalarType(schemaType)) {\n // Assuming already added\n return;\n }\n if (isCompositeType(schemaType)) {\n addCompositeType(types, schemaType);\n } else if (isEnumType(schemaType)) {\n types[name] = encodeEnumType(schemaType);\n } else if (isScalarType(schemaType)) {\n types[name] = encodeScalarType(schemaType);\n } else {\n invariant(false, \"Got non-output type: \" + inspectTypeReference(typeRef));\n }\n}\n\nfunction addReferencedInputTypes(\n schema: GraphQLSchema,\n types: TypeDefinitionsRecord,\n inputValues: InputValueDefinitionRecord | undefined,\n): void {\n if (!inputValues) {\n return;\n }\n for (const inputValueDef of Object.values(inputValues)) {\n const typeRef = getInputValueTypeReference(inputValueDef);\n const name = typeNameFromReference(typeRef);\n const schemaType = schema.getType(name);\n\n if (!schemaType) {\n throw new Error(`Type ${name} not found in schema`);\n }\n if (types[name] || isSpecifiedScalarType(schemaType)) {\n // Assuming already fully added\n continue;\n }\n if (isInputObjectType(schemaType)) {\n const inputObjectDef = encodeInputObjectType(schemaType);\n types[name] = inputObjectDef;\n addReferencedInputTypes(\n schema,\n types,\n getInputObjectFields(inputObjectDef),\n );\n } else if (isEnumType(schemaType)) {\n types[name] = encodeEnumType(schemaType);\n } else if (isScalarType(schemaType)) {\n types[name] = encodeScalarType(schemaType);\n } else {\n invariant(false, \"Got non-input type: \" + inspectTypeReference(typeRef));\n }\n }\n}\n\nfunction addCompositeType(\n types: TypeDefinitionsRecord,\n type: GraphQLCompositeType,\n): CompositeTypeTuple {\n if (types[type.name]) {\n // TODO: double check that the kind match?\n return types[type.name] as CompositeTypeTuple;\n }\n return (types[type.name] = encodeCompositeType(type));\n}\n\nfunction addField(\n type: ObjectTypeDefinitionTuple | InterfaceTypeDefinitionTuple,\n field: GraphQLField<unknown, unknown>,\n fieldNode: FieldNode,\n): FieldDefinition {\n const fields = getFields(type);\n\n const existingFieldDef: FieldDefinition = fields[field.name];\n const previouslyAddedArgs =\n getFieldArgs(existingFieldDef) ?? Object.create(null);\n\n const nodeArgs = new Set(fieldNode.arguments?.map((arg) => arg.name.value));\n\n const argsFilter = (argDef: GraphQLArgument) =>\n Boolean(\n previouslyAddedArgs[argDef.name] ||\n isNonNullType(argDef.type) ||\n argDef.defaultValue !== undefined ||\n nodeArgs.has(argDef.name),\n );\n\n return (fields[field.name] = encodeFieldDef(field, argsFilter));\n}\n\nfunction addDirective(\n directives: DirectiveDefinitionTuple[],\n directive: GraphQLDirective,\n node: DirectiveNode,\n) {\n const name = directive.name;\n let tuple = directives.find((d) => getDirectiveName(d) === name);\n if (!tuple) {\n tuple = [directive.name];\n directives.push(tuple);\n }\n\n const previouslyAddedArgs = getDirectiveDefinitionArgs(tuple);\n const nodeArgs = new Set(node.arguments?.map((arg) => arg.name.value));\n\n const argsFilter = (argDef: GraphQLArgument) =>\n Boolean(\n previouslyAddedArgs?.[argDef.name] ||\n isNonNullType(argDef.type) ||\n argDef.defaultValue !== undefined ||\n nodeArgs.has(argDef.name),\n );\n const [hasArgs, argsRecord] = encodeArguments(directive.args, argsFilter);\n if (hasArgs) {\n setDirectiveDefinitionArgs(tuple, argsRecord);\n }\n return tuple;\n}\n\nfunction encodeCompositeType(type: GraphQLCompositeType): CompositeTypeTuple {\n if (isUnionType(type)) {\n return createUnionTypeDefinition(type.getTypes().map((type) => type.name));\n }\n const ifaces = type.getInterfaces().map((iface) => iface.name);\n return isObjectType(type)\n ? createObjectTypeDefinition({}, ifaces)\n : createInterfaceTypeDefinition({}, ifaces);\n}\n\nfunction encodeInputObjectType(\n type: GraphQLInputObjectType,\n): InputObjectTypeDefinitionTuple {\n const result = Object.create(null);\n for (const [fieldName, field] of Object.entries(type.getFields())) {\n result[fieldName] = encodeInputField(field);\n }\n return createInputObjectTypeDefinition(result);\n}\n\nfunction encodeInputField(field: GraphQLInputField): InputValueDefinition {\n const typeReference = typeReferenceFromName(field.type.toString());\n return field.defaultValue === undefined\n ? typeReference\n : [typeReference, field.defaultValue];\n}\n\nfunction encodeFieldDef(\n field: GraphQLField<unknown, unknown>,\n argumentsFilter?: (arg: GraphQLArgument) => boolean,\n): FieldDefinition {\n const typeReference = typeReferenceFromName(field.type.toString());\n const [hasArgs, argsRecord] = encodeArguments(field.args, argumentsFilter);\n return !hasArgs ? typeReference : [typeReference, argsRecord];\n}\n\nfunction encodeArguments(\n args: ReadonlyArray<GraphQLArgument>,\n argumentsFilter?: (arg: GraphQLArgument) => boolean,\n): [boolean, InputValueDefinitionRecord] {\n let hasArgs = false;\n const argsRecord: InputValueDefinitionRecord = {};\n for (const argDef of args) {\n if (argumentsFilter && !argumentsFilter(argDef)) {\n continue;\n }\n const typeReference = typeReferenceFromName(argDef.type.toString());\n argsRecord[argDef.name] =\n argDef.defaultValue === undefined\n ? typeReference\n : [typeReference, argDef.defaultValue];\n hasArgs = true;\n }\n return [hasArgs, argsRecord];\n}\n\nfunction encodeEnumType(type: GraphQLEnumType): EnumTypeDefinitionTuple {\n return createEnumTypeDefinition(type.getValues().map((v) => v.name));\n}\n\nfunction encodeScalarType(_type: GraphQLScalarType): ScalarTypeDefinitionTuple {\n return createScalarTypeDefinition();\n}\n\nfunction assertCompositeType(\n type: Maybe<GraphQLOutputType>,\n node: ASTNode,\n ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>,\n): asserts type is GraphQLCompositeType {\n if (!type || !isCompositeType(type)) {\n const path =\n node.kind === Kind.FIELD\n ? makeReadableErrorPath(ancestors).join(\".\") + \".\" + node.name.value\n : makeReadableErrorPath(ancestors).join(\".\");\n throw new GraphQLError(`Cannot find type for: ${path}`, {\n nodes: node,\n });\n }\n}\n\nfunction assertExistingField(\n field: Maybe<GraphQLField<unknown, unknown>>,\n node: FieldNode,\n ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>,\n): asserts field is GraphQLField<unknown, unknown> {\n if (!field) {\n const path =\n makeReadableErrorPath(ancestors).join(\".\") + \".\" + node.name.value;\n throw new GraphQLError(`Cannot find field: ${path}`, { nodes: node });\n }\n}\n\nfunction assertAllArgumentsAreDefined(\n field: GraphQLField<unknown, unknown> | GraphQLDirective,\n node: FieldNode | DirectiveNode,\n ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>,\n) {\n const defArgs = new Set(field.args.map((arg) => arg.name));\n for (const arg of node.arguments ?? []) {\n if (!defArgs.has(arg.name.value)) {\n const path =\n makeReadableErrorPath(ancestors).join(\".\") +\n \".\" +\n node.name.value +\n `(${arg.name.value}: ...)`;\n throw new GraphQLError(`Cannot find type for argument: ${path}`, {\n nodes: arg,\n });\n }\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["type"]
7
7
  }
@@ -37,11 +37,10 @@ function mergeResolversObjMap(accumulator, resolvers) {
37
37
  const fullTypeResolver = accumulator[typeName];
38
38
  if (typeof fullTypeResolver === "undefined" && typeResolver) {
39
39
  accumulator[typeName] = typeResolver;
40
- return;
40
+ continue;
41
41
  }
42
42
  if ((0, import_isObjectLike.isObjectLike)(fullTypeResolver) && (0, import_isObjectLike.isObjectLike)(typeResolver)) {
43
43
  Object.assign(accumulator[typeName], typeResolver);
44
- return;
45
44
  }
46
45
  }
47
46
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utilities/mergeResolvers.ts"],
4
- "sourcesContent": ["import { Resolvers } from \"../types\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\n\nexport function mergeResolvers(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n): Resolvers {\n for (const entry of resolvers) {\n if (Array.isArray(entry)) {\n mergeResolvers(accumulator, entry);\n } else {\n mergeResolversObjMap(accumulator, entry);\n }\n }\n return accumulator;\n}\n\nfunction mergeResolversObjMap(accumulator: Resolvers, resolvers: Resolvers) {\n for (const [typeName, typeResolver] of Object.entries(resolvers)) {\n const fullTypeResolver = accumulator[typeName];\n if (typeof fullTypeResolver === \"undefined\" && typeResolver) {\n accumulator[typeName] = typeResolver;\n return;\n }\n if (isObjectLike(fullTypeResolver) && isObjectLike(typeResolver)) {\n Object.assign(accumulator[typeName], typeResolver);\n return;\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAA6B;AAEtB,SAAS,eACd,aACA,WACW;AACX,aAAW,SAAS,WAAW;AAC7B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,qBAAe,aAAa,KAAK;AAAA,IACnC,OAAO;AACL,2BAAqB,aAAa,KAAK;AAAA,IACzC;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,qBAAqB,aAAwB,WAAsB;AAC1E,aAAW,CAAC,UAAU,YAAY,KAAK,OAAO,QAAQ,SAAS,GAAG;AAChE,UAAM,mBAAmB,YAAY,QAAQ;AAC7C,QAAI,OAAO,qBAAqB,eAAe,cAAc;AAC3D,kBAAY,QAAQ,IAAI;AACxB;AAAA,IACF;AACA,YAAI,kCAAa,gBAAgB,SAAK,kCAAa,YAAY,GAAG;AAChE,aAAO,OAAO,YAAY,QAAQ,GAAG,YAAY;AACjD;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { Resolvers } from \"../types\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\n\nexport function mergeResolvers(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n): Resolvers {\n for (const entry of resolvers) {\n if (Array.isArray(entry)) {\n mergeResolvers(accumulator, entry);\n } else {\n mergeResolversObjMap(accumulator, entry);\n }\n }\n return accumulator;\n}\n\nfunction mergeResolversObjMap(accumulator: Resolvers, resolvers: Resolvers) {\n for (const [typeName, typeResolver] of Object.entries(resolvers)) {\n const fullTypeResolver = accumulator[typeName];\n if (typeof fullTypeResolver === \"undefined\" && typeResolver) {\n accumulator[typeName] = typeResolver;\n continue;\n }\n if (isObjectLike(fullTypeResolver) && isObjectLike(typeResolver)) {\n Object.assign(accumulator[typeName], typeResolver);\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAA6B;AAEtB,SAAS,eACd,aACA,WACW;AACX,aAAW,SAAS,WAAW;AAC7B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,qBAAe,aAAa,KAAK;AAAA,IACnC,OAAO;AACL,2BAAqB,aAAa,KAAK;AAAA,IACzC;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,qBAAqB,aAAwB,WAAsB;AAC1E,aAAW,CAAC,UAAU,YAAY,KAAK,OAAO,QAAQ,SAAS,GAAG;AAChE,UAAM,mBAAmB,YAAY,QAAQ;AAC7C,QAAI,OAAO,qBAAqB,eAAe,cAAc;AAC3D,kBAAY,QAAQ,IAAI;AACxB;AAAA,IACF;AACA,YAAI,kCAAa,gBAAgB,SAAK,kCAAa,YAAY,GAAG;AAChE,aAAO,OAAO,YAAY,QAAQ,GAAG,YAAY;AAAA,IACnD;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -15,11 +15,10 @@ function mergeResolversObjMap(accumulator, resolvers) {
15
15
  const fullTypeResolver = accumulator[typeName];
16
16
  if (typeof fullTypeResolver === "undefined" && typeResolver) {
17
17
  accumulator[typeName] = typeResolver;
18
- return;
18
+ continue;
19
19
  }
20
20
  if (isObjectLike(fullTypeResolver) && isObjectLike(typeResolver)) {
21
21
  Object.assign(accumulator[typeName], typeResolver);
22
- return;
23
22
  }
24
23
  }
25
24
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utilities/mergeResolvers.ts"],
4
- "sourcesContent": ["import { Resolvers } from \"../types\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\n\nexport function mergeResolvers(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n): Resolvers {\n for (const entry of resolvers) {\n if (Array.isArray(entry)) {\n mergeResolvers(accumulator, entry);\n } else {\n mergeResolversObjMap(accumulator, entry);\n }\n }\n return accumulator;\n}\n\nfunction mergeResolversObjMap(accumulator: Resolvers, resolvers: Resolvers) {\n for (const [typeName, typeResolver] of Object.entries(resolvers)) {\n const fullTypeResolver = accumulator[typeName];\n if (typeof fullTypeResolver === \"undefined\" && typeResolver) {\n accumulator[typeName] = typeResolver;\n return;\n }\n if (isObjectLike(fullTypeResolver) && isObjectLike(typeResolver)) {\n Object.assign(accumulator[typeName], typeResolver);\n return;\n }\n }\n}\n"],
5
- "mappings": ";AACA,SAAS,oBAAoB;AAEtB,SAAS,eACd,aACA,WACW;AACX,aAAW,SAAS,WAAW;AAC7B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,qBAAe,aAAa,KAAK;AAAA,IACnC,OAAO;AACL,2BAAqB,aAAa,KAAK;AAAA,IACzC;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,qBAAqB,aAAwB,WAAsB;AAC1E,aAAW,CAAC,UAAU,YAAY,KAAK,OAAO,QAAQ,SAAS,GAAG;AAChE,UAAM,mBAAmB,YAAY,QAAQ;AAC7C,QAAI,OAAO,qBAAqB,eAAe,cAAc;AAC3D,kBAAY,QAAQ,IAAI;AACxB;AAAA,IACF;AACA,QAAI,aAAa,gBAAgB,KAAK,aAAa,YAAY,GAAG;AAChE,aAAO,OAAO,YAAY,QAAQ,GAAG,YAAY;AACjD;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { Resolvers } from \"../types\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\n\nexport function mergeResolvers(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n): Resolvers {\n for (const entry of resolvers) {\n if (Array.isArray(entry)) {\n mergeResolvers(accumulator, entry);\n } else {\n mergeResolversObjMap(accumulator, entry);\n }\n }\n return accumulator;\n}\n\nfunction mergeResolversObjMap(accumulator: Resolvers, resolvers: Resolvers) {\n for (const [typeName, typeResolver] of Object.entries(resolvers)) {\n const fullTypeResolver = accumulator[typeName];\n if (typeof fullTypeResolver === \"undefined\" && typeResolver) {\n accumulator[typeName] = typeResolver;\n continue;\n }\n if (isObjectLike(fullTypeResolver) && isObjectLike(typeResolver)) {\n Object.assign(accumulator[typeName], typeResolver);\n }\n }\n}\n"],
5
+ "mappings": ";AACA,SAAS,oBAAoB;AAEtB,SAAS,eACd,aACA,WACW;AACX,aAAW,SAAS,WAAW;AAC7B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,qBAAe,aAAa,KAAK;AAAA,IACnC,OAAO;AACL,2BAAqB,aAAa,KAAK;AAAA,IACzC;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,qBAAqB,aAAwB,WAAsB;AAC1E,aAAW,CAAC,UAAU,YAAY,KAAK,OAAO,QAAQ,SAAS,GAAG;AAChE,UAAM,mBAAmB,YAAY,QAAQ;AAC7C,QAAI,OAAO,qBAAqB,eAAe,cAAc;AAC3D,kBAAY,QAAQ,IAAI;AACxB;AAAA,IACF;AACA,QAAI,aAAa,gBAAgB,KAAK,aAAa,YAAY,GAAG;AAChE,aAAO,OAAO,YAAY,QAAQ,GAAG,YAAY;AAAA,IACnD;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mergeSchemaDefinitions.d.ts","sourceRoot":"","sources":["../../src/utilities/mergeSchemaDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAQxB,iBAAiB,EACjB,qBAAqB,EAEtB,MAAM,sBAAsB,CAAC;AAG9B,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAE,iBAAiB,EAAE,GAC/B,iBAAiB,CAiBnB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,wBAAwB,EAAE,EAClC,MAAM,EAAE,wBAAwB,EAAE,QAuBnC;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,GAC5B,IAAI,CAwCN"}
1
+ {"version":3,"file":"mergeSchemaDefinitions.d.ts","sourceRoot":"","sources":["../../src/utilities/mergeSchemaDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAWxB,iBAAiB,EAGjB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAG9B,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAE,iBAAiB,EAAE,GAC/B,iBAAiB,CAiBnB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,wBAAwB,EAAE,EAClC,MAAM,EAAE,wBAAwB,EAAE,QAsBnC;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,GAC5B,IAAI,CAqCN"}
@@ -47,22 +47,22 @@ function mergeSchemaDefinitions(accumulator, definitions) {
47
47
  function mergeDirectives(target, source) {
48
48
  for (const sourceDirective of source) {
49
49
  const targetDirective = target.find(
50
- (directive) => directive[import_definition.DirectiveKeys.name] === sourceDirective[import_definition.DirectiveKeys.name]
50
+ (directive) => (0, import_definition.getDirectiveName)(directive) === (0, import_definition.getDirectiveName)(sourceDirective)
51
51
  );
52
52
  if (!targetDirective) {
53
53
  target.push(sourceDirective);
54
54
  continue;
55
55
  }
56
- if (!sourceDirective[import_definition.DirectiveKeys.arguments]) {
56
+ const sourceArgs = (0, import_definition.getDirectiveDefinitionArgs)(sourceDirective);
57
+ if (!sourceArgs) {
57
58
  continue;
58
59
  }
59
- if (!targetDirective[import_definition.DirectiveKeys.arguments]) {
60
- targetDirective[import_definition.DirectiveKeys.arguments] = sourceDirective[import_definition.DirectiveKeys.arguments];
60
+ const targetArgs = (0, import_definition.getDirectiveDefinitionArgs)(targetDirective);
61
+ if (!targetArgs) {
62
+ (0, import_definition.setDirectiveDefinitionArgs)(targetDirective, sourceArgs);
63
+ continue;
61
64
  }
62
- mergeInputValues(
63
- targetDirective[import_definition.DirectiveKeys.arguments],
64
- sourceDirective[import_definition.DirectiveKeys.arguments]
65
- );
65
+ mergeInputValues(targetArgs, sourceArgs);
66
66
  }
67
67
  }
68
68
  function mergeTypes(target, source) {
@@ -72,21 +72,14 @@ function mergeTypes(target, source) {
72
72
  target[typeName] = sourceDef;
73
73
  continue;
74
74
  }
75
- if (targetDef[0] === import_definition.TypeKind.OBJECT && sourceDef[0] === import_definition.TypeKind.OBJECT) {
76
- mergeFields(targetDef[import_definition.ObjectKeys.fields], sourceDef[import_definition.ObjectKeys.fields]);
77
- continue;
78
- }
79
- if (targetDef[0] === import_definition.TypeKind.INTERFACE && sourceDef[0] === import_definition.TypeKind.INTERFACE) {
80
- mergeFields(
81
- targetDef[import_definition.InterfaceKeys.fields],
82
- sourceDef[import_definition.InterfaceKeys.fields]
83
- );
75
+ if ((0, import_definition.isObjectTypeDefinition)(targetDef) && (0, import_definition.isObjectTypeDefinition)(sourceDef) || (0, import_definition.isInterfaceTypeDefinition)(targetDef) && (0, import_definition.isInterfaceTypeDefinition)(sourceDef)) {
76
+ mergeFields((0, import_definition.getFields)(targetDef), (0, import_definition.getFields)(sourceDef));
84
77
  continue;
85
78
  }
86
- if (targetDef[0] === import_definition.TypeKind.INPUT && sourceDef[0] === import_definition.TypeKind.INPUT) {
79
+ if ((0, import_definition.isInputObjectTypeDefinition)(targetDef) && (0, import_definition.isInputObjectTypeDefinition)(sourceDef)) {
87
80
  mergeInputValues(
88
- targetDef[import_definition.InputObjectKeys.fields],
89
- sourceDef[import_definition.InputObjectKeys.fields]
81
+ (0, import_definition.getInputObjectFields)(targetDef),
82
+ (0, import_definition.getInputObjectFields)(sourceDef)
90
83
  );
91
84
  continue;
92
85
  }
@@ -100,20 +93,17 @@ function mergeTypes(target, source) {
100
93
  }
101
94
  }
102
95
  function mergeFields(target, source) {
96
+ var _a;
103
97
  for (const [fieldName, sourceDef] of Object.entries(source)) {
104
98
  const targetDef = target[fieldName];
105
99
  if (!target[fieldName] || !Array.isArray(targetDef)) {
106
100
  target[fieldName] = sourceDef;
107
101
  continue;
108
102
  }
109
- if (Array.isArray(sourceDef) && sourceDef[import_definition.FieldKeys.arguments]) {
110
- if (!targetDef[import_definition.FieldKeys.arguments]) {
111
- targetDef[import_definition.FieldKeys.arguments] = {};
112
- }
113
- mergeInputValues(
114
- targetDef[import_definition.FieldKeys.arguments],
115
- sourceDef[import_definition.FieldKeys.arguments]
116
- );
103
+ const sourceArgs = (0, import_definition.getFieldArgs)(sourceDef);
104
+ if (sourceArgs) {
105
+ const targetArgs = (_a = (0, import_definition.getFieldArgs)(targetDef)) != null ? _a : (0, import_definition.setFieldArgs)(targetDef, {});
106
+ mergeInputValues(targetArgs, sourceArgs);
117
107
  }
118
108
  }
119
109
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utilities/mergeSchemaDefinitions.ts"],
4
- "sourcesContent": ["import {\n DirectiveDefinitionTuple,\n DirectiveKeys,\n FieldDefinitionRecord,\n FieldKeys,\n InputObjectKeys,\n InputValueDefinitionRecord,\n InterfaceKeys,\n ObjectKeys,\n SchemaDefinitions,\n TypeDefinitionsRecord,\n TypeKind,\n} from \"../schema/definition\";\nimport { inspect } from \"../jsutils/inspect\";\n\nexport function mergeSchemaDefinitions(\n accumulator: SchemaDefinitions,\n definitions: SchemaDefinitions[],\n): SchemaDefinitions {\n if (!definitions.length) {\n return accumulator;\n }\n for (const source of definitions) {\n if (!accumulator.types) {\n accumulator.types = source.types;\n } else if (source.types) {\n mergeTypes(accumulator.types, source.types);\n }\n if (!accumulator.directives) {\n accumulator.directives = source.directives;\n } else if (source.directives?.length) {\n mergeDirectives(accumulator.directives, source.directives);\n }\n }\n return accumulator;\n}\n\nexport function mergeDirectives(\n target: DirectiveDefinitionTuple[],\n source: DirectiveDefinitionTuple[],\n) {\n for (const sourceDirective of source) {\n const targetDirective = target.find(\n (directive) =>\n directive[DirectiveKeys.name] === sourceDirective[DirectiveKeys.name],\n );\n if (!targetDirective) {\n target.push(sourceDirective);\n continue;\n }\n if (!sourceDirective[DirectiveKeys.arguments]) {\n continue;\n }\n if (!targetDirective[DirectiveKeys.arguments]) {\n targetDirective[DirectiveKeys.arguments] =\n sourceDirective[DirectiveKeys.arguments];\n }\n mergeInputValues(\n targetDirective[DirectiveKeys.arguments],\n sourceDirective[DirectiveKeys.arguments],\n );\n }\n}\n\n/**\n * Adds missing definitions from source into target. Mutates target in place.\n */\nexport function mergeTypes(\n target: TypeDefinitionsRecord,\n source: TypeDefinitionsRecord,\n): void {\n for (const [typeName, sourceDef] of Object.entries(source)) {\n const targetDef = target[typeName];\n if (!targetDef) {\n target[typeName] = sourceDef;\n continue;\n }\n if (targetDef[0] === TypeKind.OBJECT && sourceDef[0] === TypeKind.OBJECT) {\n mergeFields(targetDef[ObjectKeys.fields], sourceDef[ObjectKeys.fields]);\n // Note: not merging implemented interfaces - assuming they are fully defined by the first occurrence\n continue;\n }\n if (\n targetDef[0] === TypeKind.INTERFACE &&\n sourceDef[0] === TypeKind.INTERFACE\n ) {\n mergeFields(\n targetDef[InterfaceKeys.fields],\n sourceDef[InterfaceKeys.fields],\n );\n // Note: not merging implemented interfaces - assuming they are fully defined by the first occurrence\n continue;\n }\n if (targetDef[0] === TypeKind.INPUT && sourceDef[0] === TypeKind.INPUT) {\n mergeInputValues(\n targetDef[InputObjectKeys.fields],\n sourceDef[InputObjectKeys.fields],\n );\n continue;\n }\n // Note: not merging scalars, unions and enums - assuming they are fully defined by the first occurrence\n if (targetDef[0] !== sourceDef[0]) {\n throw new Error(\n `Type ${typeName} is represented differently in different schema fragments:\\n` +\n inspect(targetDef) +\n `\\n` +\n inspect(sourceDef),\n );\n }\n }\n}\n\nfunction mergeFields(\n target: FieldDefinitionRecord,\n source: FieldDefinitionRecord,\n) {\n for (const [fieldName, sourceDef] of Object.entries(source)) {\n const targetDef = target[fieldName];\n if (!target[fieldName] || !Array.isArray(targetDef)) {\n target[fieldName] = sourceDef;\n continue;\n }\n if (Array.isArray(sourceDef) && sourceDef[FieldKeys.arguments]) {\n if (!targetDef[FieldKeys.arguments]) {\n targetDef[FieldKeys.arguments] = {};\n }\n mergeInputValues(\n targetDef[FieldKeys.arguments],\n sourceDef[FieldKeys.arguments],\n );\n }\n }\n}\n\nfunction mergeInputValues(\n target: InputValueDefinitionRecord,\n source: InputValueDefinitionRecord,\n) {\n for (const [fieldName, sourceDef] of Object.entries(source)) {\n const targetDef = target[fieldName];\n if (!target[fieldName] || !Array.isArray(targetDef)) {\n target[fieldName] = sourceDef;\n }\n // Note: not merging defaultValue - assuming it is fully defined by the first occurrence\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n DirectiveDefinitionTuple,\n FieldDefinitionRecord,\n getDirectiveDefinitionArgs,\n getDirectiveName,\n getFieldArgs,\n getFields,\n getInputObjectFields,\n InputValueDefinitionRecord,\n isInputObjectTypeDefinition,\n isInterfaceTypeDefinition,\n isObjectTypeDefinition,\n SchemaDefinitions,\n setDirectiveDefinitionArgs,\n setFieldArgs,\n TypeDefinitionsRecord,\n} from \"../schema/definition\";\nimport { inspect } from \"../jsutils/inspect\";\n\nexport function mergeSchemaDefinitions(\n accumulator: SchemaDefinitions,\n definitions: SchemaDefinitions[],\n): SchemaDefinitions {\n if (!definitions.length) {\n return accumulator;\n }\n for (const source of definitions) {\n if (!accumulator.types) {\n accumulator.types = source.types;\n } else if (source.types) {\n mergeTypes(accumulator.types, source.types);\n }\n if (!accumulator.directives) {\n accumulator.directives = source.directives;\n } else if (source.directives?.length) {\n mergeDirectives(accumulator.directives, source.directives);\n }\n }\n return accumulator;\n}\n\nexport function mergeDirectives(\n target: DirectiveDefinitionTuple[],\n source: DirectiveDefinitionTuple[],\n) {\n for (const sourceDirective of source) {\n const targetDirective = target.find(\n (directive) =>\n getDirectiveName(directive) === getDirectiveName(sourceDirective),\n );\n if (!targetDirective) {\n target.push(sourceDirective);\n continue;\n }\n const sourceArgs = getDirectiveDefinitionArgs(sourceDirective);\n if (!sourceArgs) {\n continue;\n }\n const targetArgs = getDirectiveDefinitionArgs(targetDirective);\n if (!targetArgs) {\n setDirectiveDefinitionArgs(targetDirective, sourceArgs);\n continue;\n }\n mergeInputValues(targetArgs, sourceArgs);\n }\n}\n\n/**\n * Adds missing definitions from source into target. Mutates target in place.\n */\nexport function mergeTypes(\n target: TypeDefinitionsRecord,\n source: TypeDefinitionsRecord,\n): void {\n for (const [typeName, sourceDef] of Object.entries(source)) {\n const targetDef = target[typeName];\n if (!targetDef) {\n target[typeName] = sourceDef;\n continue;\n }\n if (\n (isObjectTypeDefinition(targetDef) &&\n isObjectTypeDefinition(sourceDef)) ||\n (isInterfaceTypeDefinition(targetDef) &&\n isInterfaceTypeDefinition(sourceDef))\n ) {\n mergeFields(getFields(targetDef), getFields(sourceDef));\n // Note: not merging implemented interfaces - assuming they are fully defined by the first occurrence\n continue;\n }\n if (\n isInputObjectTypeDefinition(targetDef) &&\n isInputObjectTypeDefinition(sourceDef)\n ) {\n mergeInputValues(\n getInputObjectFields(targetDef),\n getInputObjectFields(sourceDef),\n );\n continue;\n }\n // Note: not merging scalars, unions and enums - assuming they are fully defined by the first occurrence\n if (targetDef[0] !== sourceDef[0]) {\n throw new Error(\n `Type ${typeName} is represented differently in different schema fragments:\\n` +\n inspect(targetDef) +\n `\\n` +\n inspect(sourceDef),\n );\n }\n }\n}\n\nfunction mergeFields(\n target: FieldDefinitionRecord,\n source: FieldDefinitionRecord,\n) {\n for (const [fieldName, sourceDef] of Object.entries(source)) {\n const targetDef = target[fieldName];\n if (!target[fieldName] || !Array.isArray(targetDef)) {\n target[fieldName] = sourceDef;\n continue;\n }\n const sourceArgs = getFieldArgs(sourceDef);\n if (sourceArgs) {\n const targetArgs = getFieldArgs(targetDef) ?? setFieldArgs(targetDef, {});\n mergeInputValues(targetArgs, sourceArgs);\n }\n }\n}\n\nfunction mergeInputValues(\n target: InputValueDefinitionRecord,\n source: InputValueDefinitionRecord,\n) {\n for (const [fieldName, sourceDef] of Object.entries(source)) {\n const targetDef = target[fieldName];\n if (!target[fieldName] || !Array.isArray(targetDef)) {\n target[fieldName] = sourceDef;\n }\n // Note: not merging defaultValue - assuming it is fully defined by the first occurrence\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAgBO;AACP,qBAAwB;AAEjB,SAAS,uBACd,aACA,aACmB;AAtBrB;AAuBE,MAAI,CAAC,YAAY,QAAQ;AACvB,WAAO;AAAA,EACT;AACA,aAAW,UAAU,aAAa;AAChC,QAAI,CAAC,YAAY,OAAO;AACtB,kBAAY,QAAQ,OAAO;AAAA,IAC7B,WAAW,OAAO,OAAO;AACvB,iBAAW,YAAY,OAAO,OAAO,KAAK;AAAA,IAC5C;AACA,QAAI,CAAC,YAAY,YAAY;AAC3B,kBAAY,aAAa,OAAO;AAAA,IAClC,YAAW,YAAO,eAAP,mBAAmB,QAAQ;AACpC,sBAAgB,YAAY,YAAY,OAAO,UAAU;AAAA,IAC3D;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,gBACd,QACA,QACA;AACA,aAAW,mBAAmB,QAAQ;AACpC,UAAM,kBAAkB,OAAO;AAAA,MAC7B,CAAC,kBACC,oCAAiB,SAAS,UAAM,oCAAiB,eAAe;AAAA,IACpE;AACA,QAAI,CAAC,iBAAiB;AACpB,aAAO,KAAK,eAAe;AAC3B;AAAA,IACF;AACA,UAAM,iBAAa,8CAA2B,eAAe;AAC7D,QAAI,CAAC,YAAY;AACf;AAAA,IACF;AACA,UAAM,iBAAa,8CAA2B,eAAe;AAC7D,QAAI,CAAC,YAAY;AACf,wDAA2B,iBAAiB,UAAU;AACtD;AAAA,IACF;AACA,qBAAiB,YAAY,UAAU;AAAA,EACzC;AACF;AAKO,SAAS,WACd,QACA,QACM;AACN,aAAW,CAAC,UAAU,SAAS,KAAK,OAAO,QAAQ,MAAM,GAAG;AAC1D,UAAM,YAAY,OAAO,QAAQ;AACjC,QAAI,CAAC,WAAW;AACd,aAAO,QAAQ,IAAI;AACnB;AAAA,IACF;AACA,YACG,0CAAuB,SAAS,SAC/B,0CAAuB,SAAS,SACjC,6CAA0B,SAAS,SAClC,6CAA0B,SAAS,GACrC;AACA,sBAAY,6BAAU,SAAS,OAAG,6BAAU,SAAS,CAAC;AAEtD;AAAA,IACF;AACA,YACE,+CAA4B,SAAS,SACrC,+CAA4B,SAAS,GACrC;AACA;AAAA,YACE,wCAAqB,SAAS;AAAA,YAC9B,wCAAqB,SAAS;AAAA,MAChC;AACA;AAAA,IACF;AAEA,QAAI,UAAU,CAAC,MAAM,UAAU,CAAC,GAAG;AACjC,YAAM,IAAI;AAAA,QACR,QAAQ;AAAA,QACN,wBAAQ,SAAS,IACjB;AAAA,QACA,wBAAQ,SAAS;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,YACP,QACA,QACA;AAnHF;AAoHE,aAAW,CAAC,WAAW,SAAS,KAAK,OAAO,QAAQ,MAAM,GAAG;AAC3D,UAAM,YAAY,OAAO,SAAS;AAClC,QAAI,CAAC,OAAO,SAAS,KAAK,CAAC,MAAM,QAAQ,SAAS,GAAG;AACnD,aAAO,SAAS,IAAI;AACpB;AAAA,IACF;AACA,UAAM,iBAAa,gCAAa,SAAS;AACzC,QAAI,YAAY;AACd,YAAM,cAAa,yCAAa,SAAS,MAAtB,gBAA2B,gCAAa,WAAW,CAAC,CAAC;AACxE,uBAAiB,YAAY,UAAU;AAAA,IACzC;AAAA,EACF;AACF;AAEA,SAAS,iBACP,QACA,QACA;AACA,aAAW,CAAC,WAAW,SAAS,KAAK,OAAO,QAAQ,MAAM,GAAG;AAC3D,UAAM,YAAY,OAAO,SAAS;AAClC,QAAI,CAAC,OAAO,SAAS,KAAK,CAAC,MAAM,QAAQ,SAAS,GAAG;AACnD,aAAO,SAAS,IAAI;AAAA,IACtB;AAAA,EAEF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,11 +1,15 @@
1
1
  // src/utilities/mergeSchemaDefinitions.ts
2
2
  import {
3
- DirectiveKeys,
4
- FieldKeys,
5
- InputObjectKeys,
6
- InterfaceKeys,
7
- ObjectKeys,
8
- TypeKind
3
+ getDirectiveDefinitionArgs,
4
+ getDirectiveName,
5
+ getFieldArgs,
6
+ getFields,
7
+ getInputObjectFields,
8
+ isInputObjectTypeDefinition,
9
+ isInterfaceTypeDefinition,
10
+ isObjectTypeDefinition,
11
+ setDirectiveDefinitionArgs,
12
+ setFieldArgs
9
13
  } from "../schema/definition.mjs";
10
14
  import { inspect } from "../jsutils/inspect.mjs";
11
15
  function mergeSchemaDefinitions(accumulator, definitions) {
@@ -30,22 +34,22 @@ function mergeSchemaDefinitions(accumulator, definitions) {
30
34
  function mergeDirectives(target, source) {
31
35
  for (const sourceDirective of source) {
32
36
  const targetDirective = target.find(
33
- (directive) => directive[DirectiveKeys.name] === sourceDirective[DirectiveKeys.name]
37
+ (directive) => getDirectiveName(directive) === getDirectiveName(sourceDirective)
34
38
  );
35
39
  if (!targetDirective) {
36
40
  target.push(sourceDirective);
37
41
  continue;
38
42
  }
39
- if (!sourceDirective[DirectiveKeys.arguments]) {
43
+ const sourceArgs = getDirectiveDefinitionArgs(sourceDirective);
44
+ if (!sourceArgs) {
40
45
  continue;
41
46
  }
42
- if (!targetDirective[DirectiveKeys.arguments]) {
43
- targetDirective[DirectiveKeys.arguments] = sourceDirective[DirectiveKeys.arguments];
47
+ const targetArgs = getDirectiveDefinitionArgs(targetDirective);
48
+ if (!targetArgs) {
49
+ setDirectiveDefinitionArgs(targetDirective, sourceArgs);
50
+ continue;
44
51
  }
45
- mergeInputValues(
46
- targetDirective[DirectiveKeys.arguments],
47
- sourceDirective[DirectiveKeys.arguments]
48
- );
52
+ mergeInputValues(targetArgs, sourceArgs);
49
53
  }
50
54
  }
51
55
  function mergeTypes(target, source) {
@@ -55,21 +59,14 @@ function mergeTypes(target, source) {
55
59
  target[typeName] = sourceDef;
56
60
  continue;
57
61
  }
58
- if (targetDef[0] === TypeKind.OBJECT && sourceDef[0] === TypeKind.OBJECT) {
59
- mergeFields(targetDef[ObjectKeys.fields], sourceDef[ObjectKeys.fields]);
60
- continue;
61
- }
62
- if (targetDef[0] === TypeKind.INTERFACE && sourceDef[0] === TypeKind.INTERFACE) {
63
- mergeFields(
64
- targetDef[InterfaceKeys.fields],
65
- sourceDef[InterfaceKeys.fields]
66
- );
62
+ if (isObjectTypeDefinition(targetDef) && isObjectTypeDefinition(sourceDef) || isInterfaceTypeDefinition(targetDef) && isInterfaceTypeDefinition(sourceDef)) {
63
+ mergeFields(getFields(targetDef), getFields(sourceDef));
67
64
  continue;
68
65
  }
69
- if (targetDef[0] === TypeKind.INPUT && sourceDef[0] === TypeKind.INPUT) {
66
+ if (isInputObjectTypeDefinition(targetDef) && isInputObjectTypeDefinition(sourceDef)) {
70
67
  mergeInputValues(
71
- targetDef[InputObjectKeys.fields],
72
- sourceDef[InputObjectKeys.fields]
68
+ getInputObjectFields(targetDef),
69
+ getInputObjectFields(sourceDef)
73
70
  );
74
71
  continue;
75
72
  }
@@ -83,20 +80,17 @@ function mergeTypes(target, source) {
83
80
  }
84
81
  }
85
82
  function mergeFields(target, source) {
83
+ var _a;
86
84
  for (const [fieldName, sourceDef] of Object.entries(source)) {
87
85
  const targetDef = target[fieldName];
88
86
  if (!target[fieldName] || !Array.isArray(targetDef)) {
89
87
  target[fieldName] = sourceDef;
90
88
  continue;
91
89
  }
92
- if (Array.isArray(sourceDef) && sourceDef[FieldKeys.arguments]) {
93
- if (!targetDef[FieldKeys.arguments]) {
94
- targetDef[FieldKeys.arguments] = {};
95
- }
96
- mergeInputValues(
97
- targetDef[FieldKeys.arguments],
98
- sourceDef[FieldKeys.arguments]
99
- );
90
+ const sourceArgs = getFieldArgs(sourceDef);
91
+ if (sourceArgs) {
92
+ const targetArgs = (_a = getFieldArgs(targetDef)) != null ? _a : setFieldArgs(targetDef, {});
93
+ mergeInputValues(targetArgs, sourceArgs);
100
94
  }
101
95
  }
102
96
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utilities/mergeSchemaDefinitions.ts"],
4
- "sourcesContent": ["import {\n DirectiveDefinitionTuple,\n DirectiveKeys,\n FieldDefinitionRecord,\n FieldKeys,\n InputObjectKeys,\n InputValueDefinitionRecord,\n InterfaceKeys,\n ObjectKeys,\n SchemaDefinitions,\n TypeDefinitionsRecord,\n TypeKind,\n} from \"../schema/definition\";\nimport { inspect } from \"../jsutils/inspect\";\n\nexport function mergeSchemaDefinitions(\n accumulator: SchemaDefinitions,\n definitions: SchemaDefinitions[],\n): SchemaDefinitions {\n if (!definitions.length) {\n return accumulator;\n }\n for (const source of definitions) {\n if (!accumulator.types) {\n accumulator.types = source.types;\n } else if (source.types) {\n mergeTypes(accumulator.types, source.types);\n }\n if (!accumulator.directives) {\n accumulator.directives = source.directives;\n } else if (source.directives?.length) {\n mergeDirectives(accumulator.directives, source.directives);\n }\n }\n return accumulator;\n}\n\nexport function mergeDirectives(\n target: DirectiveDefinitionTuple[],\n source: DirectiveDefinitionTuple[],\n) {\n for (const sourceDirective of source) {\n const targetDirective = target.find(\n (directive) =>\n directive[DirectiveKeys.name] === sourceDirective[DirectiveKeys.name],\n );\n if (!targetDirective) {\n target.push(sourceDirective);\n continue;\n }\n if (!sourceDirective[DirectiveKeys.arguments]) {\n continue;\n }\n if (!targetDirective[DirectiveKeys.arguments]) {\n targetDirective[DirectiveKeys.arguments] =\n sourceDirective[DirectiveKeys.arguments];\n }\n mergeInputValues(\n targetDirective[DirectiveKeys.arguments],\n sourceDirective[DirectiveKeys.arguments],\n );\n }\n}\n\n/**\n * Adds missing definitions from source into target. Mutates target in place.\n */\nexport function mergeTypes(\n target: TypeDefinitionsRecord,\n source: TypeDefinitionsRecord,\n): void {\n for (const [typeName, sourceDef] of Object.entries(source)) {\n const targetDef = target[typeName];\n if (!targetDef) {\n target[typeName] = sourceDef;\n continue;\n }\n if (targetDef[0] === TypeKind.OBJECT && sourceDef[0] === TypeKind.OBJECT) {\n mergeFields(targetDef[ObjectKeys.fields], sourceDef[ObjectKeys.fields]);\n // Note: not merging implemented interfaces - assuming they are fully defined by the first occurrence\n continue;\n }\n if (\n targetDef[0] === TypeKind.INTERFACE &&\n sourceDef[0] === TypeKind.INTERFACE\n ) {\n mergeFields(\n targetDef[InterfaceKeys.fields],\n sourceDef[InterfaceKeys.fields],\n );\n // Note: not merging implemented interfaces - assuming they are fully defined by the first occurrence\n continue;\n }\n if (targetDef[0] === TypeKind.INPUT && sourceDef[0] === TypeKind.INPUT) {\n mergeInputValues(\n targetDef[InputObjectKeys.fields],\n sourceDef[InputObjectKeys.fields],\n );\n continue;\n }\n // Note: not merging scalars, unions and enums - assuming they are fully defined by the first occurrence\n if (targetDef[0] !== sourceDef[0]) {\n throw new Error(\n `Type ${typeName} is represented differently in different schema fragments:\\n` +\n inspect(targetDef) +\n `\\n` +\n inspect(sourceDef),\n );\n }\n }\n}\n\nfunction mergeFields(\n target: FieldDefinitionRecord,\n source: FieldDefinitionRecord,\n) {\n for (const [fieldName, sourceDef] of Object.entries(source)) {\n const targetDef = target[fieldName];\n if (!target[fieldName] || !Array.isArray(targetDef)) {\n target[fieldName] = sourceDef;\n continue;\n }\n if (Array.isArray(sourceDef) && sourceDef[FieldKeys.arguments]) {\n if (!targetDef[FieldKeys.arguments]) {\n targetDef[FieldKeys.arguments] = {};\n }\n mergeInputValues(\n targetDef[FieldKeys.arguments],\n sourceDef[FieldKeys.arguments],\n );\n }\n }\n}\n\nfunction mergeInputValues(\n target: InputValueDefinitionRecord,\n source: InputValueDefinitionRecord,\n) {\n for (const [fieldName, sourceDef] of Object.entries(source)) {\n const targetDef = target[fieldName];\n if (!target[fieldName] || !Array.isArray(targetDef)) {\n target[fieldName] = sourceDef;\n }\n // Note: not merging defaultValue - assuming it is fully defined by the first occurrence\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n DirectiveDefinitionTuple,\n FieldDefinitionRecord,\n getDirectiveDefinitionArgs,\n getDirectiveName,\n getFieldArgs,\n getFields,\n getInputObjectFields,\n InputValueDefinitionRecord,\n isInputObjectTypeDefinition,\n isInterfaceTypeDefinition,\n isObjectTypeDefinition,\n SchemaDefinitions,\n setDirectiveDefinitionArgs,\n setFieldArgs,\n TypeDefinitionsRecord,\n} from \"../schema/definition\";\nimport { inspect } from \"../jsutils/inspect\";\n\nexport function mergeSchemaDefinitions(\n accumulator: SchemaDefinitions,\n definitions: SchemaDefinitions[],\n): SchemaDefinitions {\n if (!definitions.length) {\n return accumulator;\n }\n for (const source of definitions) {\n if (!accumulator.types) {\n accumulator.types = source.types;\n } else if (source.types) {\n mergeTypes(accumulator.types, source.types);\n }\n if (!accumulator.directives) {\n accumulator.directives = source.directives;\n } else if (source.directives?.length) {\n mergeDirectives(accumulator.directives, source.directives);\n }\n }\n return accumulator;\n}\n\nexport function mergeDirectives(\n target: DirectiveDefinitionTuple[],\n source: DirectiveDefinitionTuple[],\n) {\n for (const sourceDirective of source) {\n const targetDirective = target.find(\n (directive) =>\n getDirectiveName(directive) === getDirectiveName(sourceDirective),\n );\n if (!targetDirective) {\n target.push(sourceDirective);\n continue;\n }\n const sourceArgs = getDirectiveDefinitionArgs(sourceDirective);\n if (!sourceArgs) {\n continue;\n }\n const targetArgs = getDirectiveDefinitionArgs(targetDirective);\n if (!targetArgs) {\n setDirectiveDefinitionArgs(targetDirective, sourceArgs);\n continue;\n }\n mergeInputValues(targetArgs, sourceArgs);\n }\n}\n\n/**\n * Adds missing definitions from source into target. Mutates target in place.\n */\nexport function mergeTypes(\n target: TypeDefinitionsRecord,\n source: TypeDefinitionsRecord,\n): void {\n for (const [typeName, sourceDef] of Object.entries(source)) {\n const targetDef = target[typeName];\n if (!targetDef) {\n target[typeName] = sourceDef;\n continue;\n }\n if (\n (isObjectTypeDefinition(targetDef) &&\n isObjectTypeDefinition(sourceDef)) ||\n (isInterfaceTypeDefinition(targetDef) &&\n isInterfaceTypeDefinition(sourceDef))\n ) {\n mergeFields(getFields(targetDef), getFields(sourceDef));\n // Note: not merging implemented interfaces - assuming they are fully defined by the first occurrence\n continue;\n }\n if (\n isInputObjectTypeDefinition(targetDef) &&\n isInputObjectTypeDefinition(sourceDef)\n ) {\n mergeInputValues(\n getInputObjectFields(targetDef),\n getInputObjectFields(sourceDef),\n );\n continue;\n }\n // Note: not merging scalars, unions and enums - assuming they are fully defined by the first occurrence\n if (targetDef[0] !== sourceDef[0]) {\n throw new Error(\n `Type ${typeName} is represented differently in different schema fragments:\\n` +\n inspect(targetDef) +\n `\\n` +\n inspect(sourceDef),\n );\n }\n }\n}\n\nfunction mergeFields(\n target: FieldDefinitionRecord,\n source: FieldDefinitionRecord,\n) {\n for (const [fieldName, sourceDef] of Object.entries(source)) {\n const targetDef = target[fieldName];\n if (!target[fieldName] || !Array.isArray(targetDef)) {\n target[fieldName] = sourceDef;\n continue;\n }\n const sourceArgs = getFieldArgs(sourceDef);\n if (sourceArgs) {\n const targetArgs = getFieldArgs(targetDef) ?? setFieldArgs(targetDef, {});\n mergeInputValues(targetArgs, sourceArgs);\n }\n }\n}\n\nfunction mergeInputValues(\n target: InputValueDefinitionRecord,\n source: InputValueDefinitionRecord,\n) {\n for (const [fieldName, sourceDef] of Object.entries(source)) {\n const targetDef = target[fieldName];\n if (!target[fieldName] || !Array.isArray(targetDef)) {\n target[fieldName] = sourceDef;\n }\n // Note: not merging defaultValue - assuming it is fully defined by the first occurrence\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import type { Maybe } from "../jsutils/Maybe";
2
2
  import type { ObjMap } from "../jsutils/ObjMap";
3
- import { TypeReference } from "../schema/definition";
4
- import { PartialSchema } from "../schema/fragment";
3
+ import type { TypeReference } from "../schema/reference";
5
4
  import { ValueNode } from "graphql";
5
+ import { SchemaFragment } from "../types";
6
6
  /**
7
7
  * Produces a JavaScript value given a GraphQL Value AST.
8
8
  *
@@ -23,5 +23,5 @@ import { ValueNode } from "graphql";
23
23
  * | NullValue | null |
24
24
  *
25
25
  */
26
- export declare function valueFromAST(valueNode: Maybe<ValueNode>, typeRef: TypeReference, schemaTypes: PartialSchema, variables?: Maybe<ObjMap<unknown>>): unknown;
26
+ export declare function valueFromAST(valueNode: Maybe<ValueNode>, typeRef: TypeReference, schemaFragment: SchemaFragment, variables?: Maybe<ObjMap<unknown>>): unknown;
27
27
  //# sourceMappingURL=valueFromAST.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"valueFromAST.d.ts","sourceRoot":"","sources":["../../src/utilities/valueFromAST.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAQ,MAAM,SAAS,CAAC;AAQ1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAC3B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,aAAa,EAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GACjC,OAAO,CAmIT"}
1
+ {"version":3,"file":"valueFromAST.d.ts","sourceRoot":"","sources":["../../src/utilities/valueFromAST.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAQ,MAAM,SAAS,CAAC;AAS1C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAC3B,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,cAAc,EAC9B,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GACjC,OAAO,CAqIT"}