@graphitation/supermassive 3.0.0-alpha.6 → 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 (90) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +10 -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/mergeSchemaDefinitions.d.ts.map +1 -1
  68. package/lib/utilities/mergeSchemaDefinitions.js +18 -28
  69. package/lib/utilities/mergeSchemaDefinitions.js.map +2 -2
  70. package/lib/utilities/mergeSchemaDefinitions.mjs +28 -34
  71. package/lib/utilities/mergeSchemaDefinitions.mjs.map +2 -2
  72. package/lib/utilities/valueFromAST.d.ts +3 -3
  73. package/lib/utilities/valueFromAST.d.ts.map +1 -1
  74. package/lib/utilities/valueFromAST.js +23 -10
  75. package/lib/utilities/valueFromAST.js.map +2 -2
  76. package/lib/utilities/valueFromAST.mjs +13 -10
  77. package/lib/utilities/valueFromAST.mjs.map +2 -2
  78. package/lib/values.d.ts +2 -2
  79. package/lib/values.d.ts.map +1 -1
  80. package/lib/values.js +14 -14
  81. package/lib/values.js.map +2 -2
  82. package/lib/values.mjs +21 -14
  83. package/lib/values.mjs.map +2 -2
  84. package/package.json +1 -1
  85. package/lib/schema/fragment.d.ts +0 -63
  86. package/lib/schema/fragment.d.ts.map +0 -1
  87. package/lib/schema/fragment.js +0 -295
  88. package/lib/schema/fragment.js.map +0 -7
  89. package/lib/schema/fragment.mjs +0 -292
  90. package/lib/schema/fragment.mjs.map +0 -7
@@ -1,292 +0,0 @@
1
- // src/schema/fragment.ts
2
- import { GraphQLEnumType, GraphQLScalarType } from "graphql";
3
- import {
4
- DirectiveKeys,
5
- EnumKeys,
6
- FieldKeys,
7
- InputObjectKeys,
8
- InputValueKeys,
9
- InterfaceKeys,
10
- ObjectKeys,
11
- TypeKind,
12
- UnionKeys
13
- } from "./definition.mjs";
14
- import { isObjectLike } from "../jsutils/isObjectLike.mjs";
15
- import {
16
- isInterfaceTypeResolver,
17
- isScalarTypeResolver,
18
- isSpecifiedScalarType,
19
- isUnionTypeResolver,
20
- specifiedScalarResolvers
21
- } from "./resolvers.mjs";
22
- import { typeNameFromReference } from "./reference.mjs";
23
- var specifiedScalarDefinition = [TypeKind.SCALAR];
24
- var typeNameMetaFieldDef = "String";
25
- var resolveTypeName = (_source, _args, _context, info) => info.parentTypeName;
26
- var scalarTypeResolversBySchema = /* @__PURE__ */ new Map();
27
- var enumTypeResolversBySchema = /* @__PURE__ */ new Map();
28
- var emptyObject = Object.freeze(/* @__PURE__ */ Object.create(null));
29
- var PartialSchema = class {
30
- constructor(fragment) {
31
- this.schemaId = fragment.schemaId;
32
- this.definitions = fragment.definitions;
33
- this.resolvers = fragment.resolvers;
34
- this.operationTypes = fragment.operationTypes;
35
- let scalarTypeResolvers = scalarTypeResolversBySchema.get(this.schemaId);
36
- if (!scalarTypeResolvers) {
37
- scalarTypeResolvers = /* @__PURE__ */ new Map();
38
- scalarTypeResolversBySchema.set(this.schemaId, scalarTypeResolvers);
39
- }
40
- this.scalarTypeResolvers = scalarTypeResolvers;
41
- let enumTypeResolvers = enumTypeResolversBySchema.get(this.schemaId);
42
- if (!enumTypeResolvers) {
43
- enumTypeResolvers = /* @__PURE__ */ new Map();
44
- enumTypeResolversBySchema.set(this.schemaId, enumTypeResolvers);
45
- }
46
- this.enumTypeResolvers = enumTypeResolvers;
47
- }
48
- updateSchemaFragment(fragment) {
49
- if (this.schemaId !== fragment.schemaId) {
50
- throw new Error(
51
- `Cannot use new schema fragment: old and new fragments describe different schemas: ${this.schemaId} vs. ${fragment.schemaId}`
52
- );
53
- }
54
- this.schemaId = fragment.schemaId;
55
- this.definitions = fragment.definitions;
56
- this.resolvers = fragment.resolvers;
57
- this.operationTypes = fragment.operationTypes;
58
- }
59
- getTypeReference(tupleOrRef) {
60
- return Array.isArray(tupleOrRef) ? tupleOrRef[0] : tupleOrRef;
61
- }
62
- getObjectType(typeName) {
63
- const type = this.definitions.types[typeName];
64
- return (type == null ? void 0 : type[0]) === TypeKind.OBJECT ? type : void 0;
65
- }
66
- getObjectFields(def) {
67
- return def[ObjectKeys.fields];
68
- }
69
- addInterfaceImplementation(interfaceType, objectType) {
70
- const iface = this.getInterfaceType(interfaceType);
71
- const type = this.definitions.types[objectType];
72
- if (!iface) {
73
- throw new Error(
74
- `Type ${interfaceType} either doesn't exist or is not an interface`
75
- );
76
- }
77
- if (!type) {
78
- this.definitions.types[objectType] = [
79
- TypeKind.OBJECT,
80
- /* @__PURE__ */ Object.create(null),
81
- [interfaceType]
82
- ];
83
- return;
84
- }
85
- let knownInterfaces = type[ObjectKeys.interfaces];
86
- if (!knownInterfaces) {
87
- knownInterfaces = [];
88
- type[ObjectKeys.interfaces] = knownInterfaces;
89
- }
90
- if (!knownInterfaces.includes(interfaceType)) {
91
- knownInterfaces.push(interfaceType);
92
- }
93
- }
94
- getField(typeName, fieldName) {
95
- var _a;
96
- if (fieldName === "__typename") {
97
- return typeNameMetaFieldDef;
98
- }
99
- return (_a = this.getOwnField(typeName, fieldName)) != null ? _a : this.findInterfaceField(typeName, fieldName);
100
- }
101
- getOwnField(typeName, fieldName) {
102
- var _a, _b;
103
- const type = this.definitions.types[typeName];
104
- if (!type) {
105
- return void 0;
106
- }
107
- if (type[0] === TypeKind.OBJECT) {
108
- return (_a = type[ObjectKeys.fields]) == null ? void 0 : _a[fieldName];
109
- }
110
- if (type[0] === TypeKind.INTERFACE) {
111
- return (_b = type[InterfaceKeys.fields]) == null ? void 0 : _b[fieldName];
112
- }
113
- return void 0;
114
- }
115
- findInterfaceField(typeName, fieldName) {
116
- const type = this.definitions.types[typeName];
117
- if (!type) {
118
- return void 0;
119
- }
120
- if (type[0] === TypeKind.OBJECT && type[ObjectKeys.interfaces]) {
121
- return this.findField(type[ObjectKeys.interfaces], fieldName);
122
- }
123
- if (type[0] === TypeKind.INTERFACE && type[InterfaceKeys.interfaces]) {
124
- return this.findField(type[InterfaceKeys.interfaces], fieldName);
125
- }
126
- return void 0;
127
- }
128
- findField(interfaceTypes, fieldName) {
129
- for (const interfaceName of interfaceTypes) {
130
- const ownField = this.getOwnField(interfaceName, fieldName);
131
- if (ownField !== void 0) {
132
- return ownField;
133
- }
134
- }
135
- return void 0;
136
- }
137
- getFieldArguments(field) {
138
- return Array.isArray(field) ? field[FieldKeys.arguments] : void 0;
139
- }
140
- getDirectiveArguments(directive) {
141
- return directive[DirectiveKeys.arguments];
142
- }
143
- resolveDefinitionArguments(def) {
144
- return Array.isArray(def) ? def[FieldKeys.arguments] : void 0;
145
- }
146
- getInputObjectType(typeRef) {
147
- const type = this.definitions.types[typeNameFromReference(typeRef)];
148
- return (type == null ? void 0 : type[0]) === TypeKind.INPUT ? type : void 0;
149
- }
150
- getInputObjectFields(obj) {
151
- return obj[InputObjectKeys.fields];
152
- }
153
- getInputDefaultValue(inputValue) {
154
- return Array.isArray(inputValue) ? inputValue[InputValueKeys.defaultValue] : void 0;
155
- }
156
- getLeafType(typeRef) {
157
- const typeName = typeNameFromReference(typeRef);
158
- if (isSpecifiedScalarType(typeName)) {
159
- return specifiedScalarDefinition;
160
- }
161
- const type = this.definitions.types[typeName];
162
- if ((type == null ? void 0 : type[0]) !== TypeKind.ENUM && (type == null ? void 0 : type[0]) !== TypeKind.SCALAR) {
163
- return void 0;
164
- }
165
- return type;
166
- }
167
- isDefined(typeRef) {
168
- if (typeof typeRef === "number") {
169
- return true;
170
- }
171
- const types = this.definitions.types;
172
- const typeName = typeNameFromReference(typeRef);
173
- return !!types[typeName] || isSpecifiedScalarType(typeName);
174
- }
175
- isInputType(typeRef) {
176
- var _a;
177
- if (typeof typeRef === "number") {
178
- return true;
179
- }
180
- const typeName = typeNameFromReference(typeRef);
181
- const kind = (_a = this.definitions.types[typeName]) == null ? void 0 : _a[0];
182
- return isSpecifiedScalarType(typeName) || kind === TypeKind.ENUM || kind === TypeKind.INPUT || kind === TypeKind.SCALAR;
183
- }
184
- isObjectType(typeRef) {
185
- var _a;
186
- if (typeof typeRef === "number") {
187
- return false;
188
- }
189
- const types = this.definitions.types;
190
- const type = (_a = types[typeRef]) != null ? _a : types[typeNameFromReference(typeRef)];
191
- return (type == null ? void 0 : type[0]) === TypeKind.OBJECT;
192
- }
193
- isAbstractType(typeRef) {
194
- var _a;
195
- if (typeof typeRef === "number") {
196
- return false;
197
- }
198
- const types = this.definitions.types;
199
- const type = (_a = types[typeRef]) != null ? _a : types[typeNameFromReference(typeRef)];
200
- return (type == null ? void 0 : type[0]) === TypeKind.UNION || (type == null ? void 0 : type[0]) === TypeKind.INTERFACE;
201
- }
202
- getUnionType(typeRef) {
203
- var _a;
204
- const types = this.definitions.types;
205
- const type = (_a = types[typeRef]) != null ? _a : types[typeNameFromReference(typeRef)];
206
- return (type == null ? void 0 : type[0]) === TypeKind.UNION ? type : void 0;
207
- }
208
- getInterfaceType(typeRef) {
209
- var _a;
210
- const types = this.definitions.types;
211
- const type = (_a = types[typeRef]) != null ? _a : types[typeNameFromReference(typeRef)];
212
- return (type == null ? void 0 : type[0]) === TypeKind.INTERFACE ? type : void 0;
213
- }
214
- isSubType(abstractTypeName, maybeSubTypeName) {
215
- var _a, _b;
216
- const union = this.getUnionType(abstractTypeName);
217
- if (union) {
218
- return union[UnionKeys.types].includes(maybeSubTypeName);
219
- }
220
- const object = this.getObjectType(maybeSubTypeName);
221
- if (object) {
222
- return !!((_a = object[ObjectKeys.interfaces]) == null ? void 0 : _a.includes(abstractTypeName));
223
- }
224
- const iface = this.getInterfaceType(maybeSubTypeName);
225
- if (iface) {
226
- return !!((_b = iface[InterfaceKeys.interfaces]) == null ? void 0 : _b.includes(abstractTypeName));
227
- }
228
- return false;
229
- }
230
- getFieldResolver(typeName, fieldName) {
231
- if (fieldName === "__typename") {
232
- return resolveTypeName;
233
- }
234
- const typeResolvers = this.resolvers[typeName];
235
- const fieldResolver = typeResolvers == null ? void 0 : typeResolvers[fieldName];
236
- return typeof fieldResolver === "function" ? fieldResolver : fieldResolver == null ? void 0 : fieldResolver.resolve;
237
- }
238
- getSubscriptionFieldResolver(subscriptionTypeName, fieldName) {
239
- const typeResolvers = this.resolvers[subscriptionTypeName];
240
- const fieldResolver = typeResolvers == null ? void 0 : typeResolvers[fieldName];
241
- return typeof fieldResolver === "function" ? fieldResolver : fieldResolver == null ? void 0 : fieldResolver.subscribe;
242
- }
243
- getAbstractTypeResolver(typeName) {
244
- const resolver = this.resolvers[typeName];
245
- return resolver && (isUnionTypeResolver(resolver) || isInterfaceTypeResolver(resolver)) ? resolver.__resolveType : void 0;
246
- }
247
- getLeafTypeResolver(typeRef) {
248
- var _a;
249
- const typeName = typeNameFromReference(typeRef);
250
- if (specifiedScalarResolvers[typeName]) {
251
- return specifiedScalarResolvers[typeName];
252
- }
253
- const typeDef = this.getLeafType(typeRef);
254
- if (!typeDef) {
255
- return void 0;
256
- }
257
- if (typeDef[0] === TypeKind.SCALAR) {
258
- let scalarType = this.scalarTypeResolvers.get(typeName);
259
- if (!scalarType) {
260
- const tmp = this.resolvers[typeName];
261
- scalarType = isScalarTypeResolver(tmp) ? tmp : new GraphQLScalarType({ name: typeName, description: "" });
262
- this.scalarTypeResolvers.set(typeName, scalarType);
263
- }
264
- return scalarType;
265
- }
266
- if (typeDef[0] === TypeKind.ENUM) {
267
- let enumType = this.enumTypeResolvers.get(typeName);
268
- if (!enumType) {
269
- const tmp = this.resolvers[typeName];
270
- const customValues = isObjectLike(tmp) ? tmp : emptyObject;
271
- const values = {};
272
- for (const value of (_a = typeDef[EnumKeys.values]) != null ? _a : []) {
273
- values[value] = typeof customValues[value] !== "undefined" ? { value: customValues[value] } : {};
274
- }
275
- enumType = new GraphQLEnumType({
276
- name: typeName,
277
- values
278
- });
279
- this.enumTypeResolvers.set(typeName, enumType);
280
- }
281
- return enumType;
282
- }
283
- return void 0;
284
- }
285
- getDirectiveName(def) {
286
- return def[DirectiveKeys.name];
287
- }
288
- };
289
- PartialSchema.parseOptions = { noLocation: true };
290
- export {
291
- PartialSchema
292
- };
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/schema/fragment.ts"],
4
- "sourcesContent": ["import { GraphQLEnumType, GraphQLLeafType, GraphQLScalarType } from \"graphql\";\nimport {\n DirectiveDefinitionTuple,\n DirectiveKeys,\n EnumKeys,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n FieldDefinitionRecord,\n FieldKeys,\n InputObjectKeys,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InputValueDefinitionRecord,\n InputValueKeys,\n InterfaceKeys,\n InterfaceTypeDefinitionTuple,\n ObjectKeys,\n ObjectTypeDefinitionTuple,\n OperationTypes,\n ScalarTypeDefinitionTuple,\n SchemaDefinitions,\n TypeKind,\n TypeName,\n TypeReference,\n UnionKeys,\n UnionTypeDefinitionTuple,\n} from \"./definition\";\nimport {\n FunctionFieldResolver,\n ObjectTypeResolver,\n ScalarTypeResolver,\n TypeResolver,\n UserResolvers,\n} from \"../types\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\nimport {\n isInterfaceTypeResolver,\n isScalarTypeResolver,\n isSpecifiedScalarType,\n isUnionTypeResolver,\n specifiedScalarResolvers,\n} from \"./resolvers\";\nimport { typeNameFromReference } from \"./reference\";\n\ntype SchemaId = string;\n\nexport type SchemaFragment = {\n schemaId: SchemaId;\n definitions: SchemaDefinitions;\n resolvers: UserResolvers;\n operationTypes?: OperationTypes;\n};\n\nexport type SchemaFragmentLoadByField = {\n kind: \"byField\";\n parentTypeName: TypeName;\n fieldName: string;\n};\n\nexport type SchemaFragmentLoadRequest = SchemaFragmentLoadByField;\nexport type SchemaFragmentLoaderResult = {\n mergedFragment: SchemaFragment;\n mergedContextValue?: unknown;\n};\n\nexport type SchemaFragmentLoader = (\n currentFragment: SchemaFragment,\n currentContextValue: unknown,\n req: SchemaFragmentLoadRequest,\n) => Promise<SchemaFragmentLoaderResult>;\n\nconst specifiedScalarDefinition: ScalarTypeDefinitionTuple = [TypeKind.SCALAR];\nconst typeNameMetaFieldDef: FieldDefinition = \"String\";\nconst resolveTypeName: FunctionFieldResolver<unknown, unknown> = (\n _source,\n _args,\n _context,\n info,\n) => info.parentTypeName;\nconst scalarTypeResolversBySchema = new Map<\n SchemaId,\n Map<TypeName, GraphQLScalarType>\n>();\nconst enumTypeResolversBySchema = new Map<\n SchemaId,\n Map<TypeName, GraphQLEnumType>\n>();\nconst emptyObject = Object.freeze(Object.create(null));\n\nexport class PartialSchema {\n static parseOptions = { noLocation: true };\n\n private schemaId: string;\n private definitions: SchemaDefinitions;\n private resolvers: UserResolvers;\n private operationTypes: OperationTypes | undefined;\n\n private scalarTypeResolvers: Map<TypeName, ScalarTypeResolver>;\n private enumTypeResolvers: Map<TypeName, GraphQLEnumType>;\n\n constructor(fragment: SchemaFragment) {\n this.schemaId = fragment.schemaId;\n this.definitions = fragment.definitions;\n this.resolvers = fragment.resolvers;\n this.operationTypes = fragment.operationTypes;\n\n let scalarTypeResolvers = scalarTypeResolversBySchema.get(this.schemaId);\n if (!scalarTypeResolvers) {\n scalarTypeResolvers = new Map<TypeName, ScalarTypeResolver>();\n scalarTypeResolversBySchema.set(this.schemaId, scalarTypeResolvers);\n }\n this.scalarTypeResolvers = scalarTypeResolvers;\n\n let enumTypeResolvers = enumTypeResolversBySchema.get(this.schemaId);\n if (!enumTypeResolvers) {\n enumTypeResolvers = new Map<TypeName, GraphQLEnumType>();\n enumTypeResolversBySchema.set(this.schemaId, enumTypeResolvers);\n }\n this.enumTypeResolvers = enumTypeResolvers;\n }\n\n public updateSchemaFragment(fragment: SchemaFragment) {\n if (this.schemaId !== fragment.schemaId) {\n throw new Error(\n `Cannot use new schema fragment: old and new fragments describe different schemas:` +\n ` ${this.schemaId} vs. ${fragment.schemaId}`,\n );\n }\n this.schemaId = fragment.schemaId;\n this.definitions = fragment.definitions;\n this.resolvers = fragment.resolvers;\n this.operationTypes = fragment.operationTypes;\n }\n\n public getTypeReference(\n tupleOrRef: FieldDefinition | InputValueDefinition,\n ): TypeReference {\n return Array.isArray(tupleOrRef) ? tupleOrRef[0] : tupleOrRef;\n }\n\n public getObjectType(\n typeName: TypeName,\n ): ObjectTypeDefinitionTuple | undefined {\n const type = this.definitions.types[typeName];\n return type?.[0] === TypeKind.OBJECT ? type : undefined;\n }\n\n public getObjectFields(\n def: ObjectTypeDefinitionTuple,\n ): FieldDefinitionRecord | undefined {\n return def[ObjectKeys.fields];\n }\n\n public addInterfaceImplementation(\n interfaceType: TypeName,\n objectType: TypeName,\n ) {\n const iface = this.getInterfaceType(interfaceType);\n const type = this.definitions.types[objectType];\n\n if (!iface) {\n throw new Error(\n `Type ${interfaceType} either doesn't exist or is not an interface`,\n );\n }\n if (!type) {\n this.definitions.types[objectType] = [\n TypeKind.OBJECT,\n Object.create(null),\n [interfaceType],\n ];\n return;\n }\n let knownInterfaces = type[ObjectKeys.interfaces];\n if (!knownInterfaces) {\n knownInterfaces = [];\n type[ObjectKeys.interfaces] = knownInterfaces;\n }\n if (!knownInterfaces.includes(interfaceType)) {\n knownInterfaces.push(interfaceType);\n }\n }\n\n public getField(typeName: TypeName, fieldName: string) {\n if (fieldName === \"__typename\") {\n return typeNameMetaFieldDef;\n }\n return (\n this.getOwnField(typeName, fieldName) ??\n this.findInterfaceField(typeName, fieldName)\n );\n }\n\n private getOwnField(\n typeName: TypeName,\n fieldName: string,\n ): FieldDefinition | undefined {\n const type = this.definitions.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT) {\n return type[ObjectKeys.fields]?.[fieldName];\n }\n if (type[0] === TypeKind.INTERFACE) {\n return type[InterfaceKeys.fields]?.[fieldName];\n }\n return undefined;\n }\n\n private findInterfaceField(typeName: TypeName, fieldName: string) {\n const type = this.definitions.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT && type[ObjectKeys.interfaces]) {\n return this.findField(type[ObjectKeys.interfaces], fieldName);\n }\n if (type[0] === TypeKind.INTERFACE && type[InterfaceKeys.interfaces]) {\n return this.findField(type[InterfaceKeys.interfaces], fieldName);\n }\n return undefined;\n }\n\n private findField(interfaceTypes: TypeName[], fieldName: string) {\n // TODO: merge field definition from all interface types to ensure all necessary arguments are present\n // (or maybe instead always encode all arguments in the schema fragment for simplicity?)\n for (const interfaceName of interfaceTypes) {\n const ownField = this.getOwnField(interfaceName, fieldName);\n if (ownField !== undefined) {\n return ownField;\n }\n }\n return undefined;\n }\n\n public getFieldArguments(\n field: FieldDefinition,\n ): InputValueDefinitionRecord | undefined {\n return Array.isArray(field) ? field[FieldKeys.arguments] : undefined;\n }\n\n public getDirectiveArguments(\n directive: DirectiveDefinitionTuple,\n ): InputValueDefinitionRecord | undefined {\n return directive[DirectiveKeys.arguments];\n }\n\n public resolveDefinitionArguments(\n def: FieldDefinition | DirectiveDefinitionTuple,\n ): InputValueDefinitionRecord | undefined {\n // Note: both FieldDefinition and DirectiveDefinition store arguments at the same position\n return Array.isArray(def) ? def[FieldKeys.arguments] : undefined;\n }\n\n public getInputObjectType(\n typeRef: TypeReference,\n ): InputObjectTypeDefinitionTuple | undefined {\n const type = this.definitions.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INPUT ? type : undefined;\n }\n\n public getInputObjectFields(\n obj: InputObjectTypeDefinitionTuple,\n ): InputValueDefinitionRecord {\n return obj[InputObjectKeys.fields];\n }\n\n public getInputDefaultValue(\n inputValue: InputValueDefinition,\n ): unknown | undefined {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.defaultValue]\n : undefined;\n }\n\n public getLeafType(\n typeRef: TypeReference,\n ): EnumTypeDefinitionTuple | ScalarTypeDefinitionTuple | undefined {\n const typeName = typeNameFromReference(typeRef);\n\n if (isSpecifiedScalarType(typeName)) {\n return specifiedScalarDefinition;\n }\n const type = this.definitions.types[typeName];\n if (type?.[0] !== TypeKind.ENUM && type?.[0] !== TypeKind.SCALAR) {\n return undefined;\n }\n return type;\n }\n\n public isDefined(typeRef: TypeReference): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: spec type\n return true;\n }\n const types = this.definitions.types;\n const typeName = typeNameFromReference(typeRef);\n return !!types[typeName] || isSpecifiedScalarType(typeName);\n }\n\n public isInputType(typeRef: TypeReference): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are input types\n return true;\n }\n const typeName = typeNameFromReference(typeRef);\n const kind = this.definitions.types[typeName]?.[0];\n return (\n isSpecifiedScalarType(typeName) ||\n kind === TypeKind.ENUM ||\n kind === TypeKind.INPUT ||\n kind === TypeKind.SCALAR\n );\n }\n\n public isObjectType(typeRef: TypeReference): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const types = this.definitions.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.OBJECT;\n }\n\n public isAbstractType(typeRef: TypeReference): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const types = this.definitions.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION || type?.[0] === TypeKind.INTERFACE;\n }\n\n public getUnionType(\n typeRef: TypeReference,\n ): UnionTypeDefinitionTuple | undefined {\n const types = this.definitions.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION ? type : undefined;\n }\n\n public getInterfaceType(\n typeRef: TypeReference,\n ): InterfaceTypeDefinitionTuple | undefined {\n const types = this.definitions.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INTERFACE ? type : undefined;\n }\n\n public isSubType(\n abstractTypeName: TypeName,\n maybeSubTypeName: TypeName,\n ): boolean {\n const union = this.getUnionType(abstractTypeName);\n if (union) {\n return union[UnionKeys.types].includes(maybeSubTypeName);\n }\n const object = this.getObjectType(maybeSubTypeName);\n if (object) {\n return !!object[ObjectKeys.interfaces]?.includes(abstractTypeName);\n }\n const iface = this.getInterfaceType(maybeSubTypeName);\n if (iface) {\n return !!iface[InterfaceKeys.interfaces]?.includes(abstractTypeName);\n }\n return false;\n }\n\n public getFieldResolver(\n typeName: TypeName,\n fieldName: string,\n ): FunctionFieldResolver<unknown, unknown> | undefined {\n if (fieldName === \"__typename\") {\n return resolveTypeName;\n }\n // TODO: sanity check that this is an object type resolver\n const typeResolvers = this.resolvers[typeName] as\n | ObjectTypeResolver<unknown, unknown, unknown>\n | undefined;\n const fieldResolver = typeResolvers?.[fieldName];\n return typeof fieldResolver === \"function\"\n ? fieldResolver\n : fieldResolver?.resolve;\n }\n\n public getSubscriptionFieldResolver(\n subscriptionTypeName: TypeName,\n fieldName: string,\n ): FunctionFieldResolver<unknown, unknown> | undefined {\n // TODO: sanity check that this is an object type resolver\n const typeResolvers = this.resolvers[subscriptionTypeName] as\n | ObjectTypeResolver<unknown, unknown, unknown>\n | undefined;\n const fieldResolver = typeResolvers?.[fieldName];\n return typeof fieldResolver === \"function\"\n ? fieldResolver\n : fieldResolver?.subscribe;\n }\n\n public getAbstractTypeResolver(\n typeName: TypeName,\n ): TypeResolver<unknown, unknown> | undefined {\n const resolver = this.resolvers[typeName];\n return resolver &&\n (isUnionTypeResolver(resolver) || isInterfaceTypeResolver(resolver))\n ? resolver.__resolveType\n : undefined;\n }\n\n public getLeafTypeResolver(\n typeRef: TypeReference,\n ): GraphQLLeafType | undefined {\n // TODO: consider removing GraphQLEnumType and GraphQLScalarType\n const typeName = typeNameFromReference(typeRef);\n\n if (specifiedScalarResolvers[typeName]) {\n return specifiedScalarResolvers[typeName];\n }\n\n const typeDef = this.getLeafType(typeRef);\n if (!typeDef) {\n // TODO: Could be still in resolvers (i.e., add \"found in resolvers, not found in schema\" error?)\n return undefined;\n }\n\n if (typeDef[0] === TypeKind.SCALAR) {\n let scalarType = this.scalarTypeResolvers.get(typeName);\n if (!scalarType) {\n const tmp = this.resolvers[typeName];\n scalarType = isScalarTypeResolver(tmp)\n ? tmp\n : new GraphQLScalarType({ name: typeName, description: \"\" });\n this.scalarTypeResolvers.set(typeName, scalarType);\n }\n return scalarType;\n }\n if (typeDef[0] === TypeKind.ENUM) {\n let enumType = this.enumTypeResolvers.get(typeName);\n if (!enumType) {\n const tmp = this.resolvers[typeName]; // Can only be graphql-tools map\n const customValues = isObjectLike(tmp) ? tmp : emptyObject;\n\n const values: Record<string, object> = {};\n for (const value of typeDef[EnumKeys.values] ?? []) {\n values[value] =\n typeof customValues[value] !== \"undefined\"\n ? { value: customValues[value] }\n : {};\n }\n enumType = new GraphQLEnumType({\n name: typeName,\n values,\n });\n this.enumTypeResolvers.set(typeName, enumType);\n }\n return enumType;\n }\n return undefined;\n }\n\n public getDirectiveName(def: DirectiveDefinitionTuple) {\n return def[DirectiveKeys.name];\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }