@graphitation/supermassive 2.6.1 → 3.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +17 -1
  3. package/lib/__testUtils__/execute.d.ts +13 -0
  4. package/lib/__testUtils__/execute.d.ts.map +1 -0
  5. package/lib/__testUtils__/execute.js +196 -0
  6. package/lib/__testUtils__/execute.js.map +7 -0
  7. package/lib/__testUtils__/execute.mjs +174 -0
  8. package/lib/__testUtils__/execute.mjs.map +7 -0
  9. package/lib/benchmarks/index.js +11 -20
  10. package/lib/benchmarks/index.js.map +3 -3
  11. package/lib/benchmarks/index.mjs +12 -23
  12. package/lib/benchmarks/index.mjs.map +2 -2
  13. package/lib/benchmarks/swapi-schema/index.d.ts +4 -2
  14. package/lib/benchmarks/swapi-schema/index.d.ts.map +1 -1
  15. package/lib/benchmarks/swapi-schema/index.js +8 -2
  16. package/lib/benchmarks/swapi-schema/index.js.map +2 -2
  17. package/lib/benchmarks/swapi-schema/index.mjs +8 -2
  18. package/lib/benchmarks/swapi-schema/index.mjs.map +2 -2
  19. package/lib/benchmarks/swapi-schema/makeExecutableSchema.d.ts +7 -0
  20. package/lib/benchmarks/swapi-schema/makeExecutableSchema.d.ts.map +1 -0
  21. package/lib/benchmarks/swapi-schema/makeExecutableSchema.js +916 -0
  22. package/lib/benchmarks/swapi-schema/makeExecutableSchema.js.map +7 -0
  23. package/lib/benchmarks/swapi-schema/makeExecutableSchema.mjs +903 -0
  24. package/lib/benchmarks/swapi-schema/makeExecutableSchema.mjs.map +7 -0
  25. package/lib/benchmarks/swapi-schema/resolvers.d.ts.map +1 -1
  26. package/lib/benchmarks/swapi-schema/resolvers.js +53 -17
  27. package/lib/benchmarks/swapi-schema/resolvers.js.map +2 -2
  28. package/lib/benchmarks/swapi-schema/resolvers.mjs +54 -18
  29. package/lib/benchmarks/swapi-schema/resolvers.mjs.map +2 -2
  30. package/lib/collectFields.d.ts +27 -10
  31. package/lib/collectFields.d.ts.map +1 -1
  32. package/lib/collectFields.js +146 -80
  33. package/lib/collectFields.js.map +3 -3
  34. package/lib/collectFields.mjs +143 -81
  35. package/lib/collectFields.mjs.map +2 -2
  36. package/lib/executeWithSchema.d.ts +1 -1
  37. package/lib/executeWithSchema.d.ts.map +1 -1
  38. package/lib/executeWithSchema.js +7 -13
  39. package/lib/executeWithSchema.js.map +2 -2
  40. package/lib/executeWithSchema.mjs +9 -20
  41. package/lib/executeWithSchema.mjs.map +2 -2
  42. package/lib/executeWithoutSchema.d.ts +53 -16
  43. package/lib/executeWithoutSchema.d.ts.map +1 -1
  44. package/lib/executeWithoutSchema.js +1076 -274
  45. package/lib/executeWithoutSchema.js.map +3 -3
  46. package/lib/executeWithoutSchema.mjs +1092 -281
  47. package/lib/executeWithoutSchema.mjs.map +3 -3
  48. package/lib/index.d.ts +3 -9
  49. package/lib/index.d.ts.map +1 -1
  50. package/lib/index.js +3 -7
  51. package/lib/index.js.map +2 -2
  52. package/lib/index.mjs +3 -10
  53. package/lib/index.mjs.map +2 -2
  54. package/lib/jsutils/AccumulatorMap.d.ts +8 -0
  55. package/lib/jsutils/AccumulatorMap.d.ts.map +1 -0
  56. package/lib/jsutils/AccumulatorMap.js +36 -0
  57. package/lib/jsutils/AccumulatorMap.js.map +7 -0
  58. package/lib/jsutils/AccumulatorMap.mjs +17 -0
  59. package/lib/jsutils/AccumulatorMap.mjs.map +7 -0
  60. package/lib/jsutils/didYouMean.d.ts +1 -2
  61. package/lib/jsutils/didYouMean.d.ts.map +1 -1
  62. package/lib/jsutils/didYouMean.js.map +2 -2
  63. package/lib/jsutils/didYouMean.mjs.map +2 -2
  64. package/lib/jsutils/instanceOf.js.map +2 -2
  65. package/lib/jsutils/instanceOf.mjs.map +2 -2
  66. package/lib/schema/definition.d.ts +95 -0
  67. package/lib/schema/definition.d.ts.map +1 -0
  68. package/lib/schema/definition.js +77 -0
  69. package/lib/schema/definition.js.map +7 -0
  70. package/lib/schema/definition.mjs +58 -0
  71. package/lib/schema/definition.mjs.map +7 -0
  72. package/lib/schema/directives.d.ts +41 -0
  73. package/lib/schema/directives.d.ts.map +1 -0
  74. package/lib/schema/directives.js +82 -0
  75. package/lib/schema/directives.js.map +7 -0
  76. package/lib/schema/directives.mjs +65 -0
  77. package/lib/schema/directives.mjs.map +7 -0
  78. package/lib/schema/fragment.d.ts +41 -0
  79. package/lib/schema/fragment.d.ts.map +1 -0
  80. package/lib/schema/fragment.js +270 -0
  81. package/lib/schema/fragment.js.map +7 -0
  82. package/lib/schema/fragment.mjs +267 -0
  83. package/lib/schema/fragment.mjs.map +7 -0
  84. package/lib/schema/reference.d.ts +12 -0
  85. package/lib/schema/reference.d.ts.map +1 -0
  86. package/lib/schema/reference.js +137 -0
  87. package/lib/schema/reference.js.map +7 -0
  88. package/lib/schema/reference.mjs +118 -0
  89. package/lib/schema/reference.mjs.map +7 -0
  90. package/lib/schema/resolvers.d.ts +9 -0
  91. package/lib/schema/resolvers.d.ts.map +1 -0
  92. package/lib/schema/resolvers.js +47 -0
  93. package/lib/schema/resolvers.js.map +7 -0
  94. package/lib/schema/resolvers.mjs +35 -0
  95. package/lib/schema/resolvers.mjs.map +7 -0
  96. package/lib/subscribeWithSchema.d.ts +3 -2
  97. package/lib/subscribeWithSchema.d.ts.map +1 -1
  98. package/lib/subscribeWithSchema.js +7 -13
  99. package/lib/subscribeWithSchema.js.map +2 -2
  100. package/lib/subscribeWithSchema.mjs +9 -20
  101. package/lib/subscribeWithSchema.mjs.map +2 -2
  102. package/lib/subscribeWithoutSchema.d.ts +3 -35
  103. package/lib/subscribeWithoutSchema.d.ts.map +1 -1
  104. package/lib/subscribeWithoutSchema.js +1 -163
  105. package/lib/subscribeWithoutSchema.js.map +2 -2
  106. package/lib/subscribeWithoutSchema.mjs +2 -175
  107. package/lib/subscribeWithoutSchema.mjs.map +2 -2
  108. package/lib/types.d.ts +71 -29
  109. package/lib/types.d.ts.map +1 -1
  110. package/lib/types.js +14 -0
  111. package/lib/types.js.map +2 -2
  112. package/lib/types.mjs +11 -0
  113. package/lib/types.mjs.map +3 -3
  114. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts +9 -0
  115. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts.map +1 -0
  116. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js +303 -0
  117. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js.map +7 -0
  118. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs +317 -0
  119. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs.map +7 -0
  120. package/lib/utilities/annotateDocumentGraphQLTransform.d.ts +3 -0
  121. package/lib/utilities/annotateDocumentGraphQLTransform.d.ts.map +1 -0
  122. package/lib/utilities/annotateDocumentGraphQLTransform.js +34 -0
  123. package/lib/utilities/annotateDocumentGraphQLTransform.js.map +7 -0
  124. package/lib/utilities/annotateDocumentGraphQLTransform.mjs +17 -0
  125. package/lib/utilities/annotateDocumentGraphQLTransform.mjs.map +7 -0
  126. package/lib/utilities/coerceInputValue.d.ts +10 -0
  127. package/lib/utilities/coerceInputValue.d.ts.map +1 -0
  128. package/lib/utilities/coerceInputValue.js +181 -0
  129. package/lib/utilities/coerceInputValue.js.map +7 -0
  130. package/lib/utilities/coerceInputValue.mjs +167 -0
  131. package/lib/utilities/coerceInputValue.mjs.map +7 -0
  132. package/lib/utilities/decodeASTSchema.d.ts +7 -0
  133. package/lib/utilities/decodeASTSchema.d.ts.map +1 -0
  134. package/lib/utilities/decodeASTSchema.js +243 -0
  135. package/lib/utilities/decodeASTSchema.js.map +7 -0
  136. package/lib/utilities/decodeASTSchema.mjs +242 -0
  137. package/lib/utilities/decodeASTSchema.mjs.map +7 -0
  138. package/lib/utilities/encodeASTSchema.d.ts +4 -0
  139. package/lib/utilities/encodeASTSchema.d.ts.map +1 -0
  140. package/lib/utilities/encodeASTSchema.js +122 -0
  141. package/lib/utilities/encodeASTSchema.js.map +7 -0
  142. package/lib/utilities/encodeASTSchema.mjs +105 -0
  143. package/lib/utilities/encodeASTSchema.mjs.map +7 -0
  144. package/lib/utilities/getSchemaFragment.d.ts +4 -0
  145. package/lib/utilities/getSchemaFragment.d.ts.map +1 -0
  146. package/lib/utilities/getSchemaFragment.js +38 -0
  147. package/lib/utilities/getSchemaFragment.js.map +7 -0
  148. package/lib/utilities/getSchemaFragment.mjs +22 -0
  149. package/lib/utilities/getSchemaFragment.mjs.map +7 -0
  150. package/lib/utilities/makeReadableErrorPath.d.ts +3 -0
  151. package/lib/utilities/makeReadableErrorPath.d.ts.map +1 -0
  152. package/lib/utilities/makeReadableErrorPath.js +47 -0
  153. package/lib/utilities/makeReadableErrorPath.js.map +7 -0
  154. package/lib/utilities/makeReadableErrorPath.mjs +28 -0
  155. package/lib/utilities/makeReadableErrorPath.mjs.map +7 -0
  156. package/lib/utilities/mergeDefinitions.d.ts +8 -0
  157. package/lib/utilities/mergeDefinitions.d.ts.map +1 -0
  158. package/lib/utilities/mergeDefinitions.js +126 -0
  159. package/lib/utilities/mergeDefinitions.js.map +7 -0
  160. package/lib/utilities/mergeDefinitions.mjs +114 -0
  161. package/lib/utilities/mergeDefinitions.mjs.map +7 -0
  162. package/lib/utilities/mergeResolvers.d.ts +1 -1
  163. package/lib/utilities/mergeResolvers.d.ts.map +1 -1
  164. package/lib/utilities/mergeResolvers.js.map +2 -2
  165. package/lib/utilities/mergeResolvers.mjs.map +2 -2
  166. package/lib/utilities/typeNameFromAST.d.ts +1 -1
  167. package/lib/utilities/typeNameFromAST.d.ts.map +1 -1
  168. package/lib/utilities/typeNameFromAST.js.map +2 -2
  169. package/lib/utilities/typeNameFromAST.mjs.map +2 -2
  170. package/lib/utilities/valueFromAST.d.ts +27 -0
  171. package/lib/utilities/valueFromAST.d.ts.map +1 -0
  172. package/lib/utilities/valueFromAST.js +139 -0
  173. package/lib/utilities/valueFromAST.js.map +7 -0
  174. package/lib/utilities/valueFromAST.mjs +125 -0
  175. package/lib/utilities/valueFromAST.mjs.map +7 -0
  176. package/lib/utilities/valueFromASTUntyped.d.ts +21 -0
  177. package/lib/utilities/valueFromASTUntyped.d.ts.map +1 -0
  178. package/lib/utilities/valueFromASTUntyped.js +51 -0
  179. package/lib/utilities/valueFromASTUntyped.js.map +7 -0
  180. package/lib/utilities/valueFromASTUntyped.mjs +32 -0
  181. package/lib/utilities/valueFromASTUntyped.mjs.map +7 -0
  182. package/lib/values.d.ts +8 -13
  183. package/lib/values.d.ts.map +1 -1
  184. package/lib/values.js +83 -75
  185. package/lib/values.js.map +2 -2
  186. package/lib/values.mjs +85 -83
  187. package/lib/values.mjs.map +2 -2
  188. package/package.json +8 -9
  189. package/lib/definition.d.ts +0 -7
  190. package/lib/definition.d.ts.map +0 -1
  191. package/lib/definition.js +0 -59
  192. package/lib/definition.js.map +0 -7
  193. package/lib/definition.mjs +0 -40
  194. package/lib/definition.mjs.map +0 -7
  195. package/lib/directives.d.ts +0 -79
  196. package/lib/directives.d.ts.map +0 -1
  197. package/lib/directives.js +0 -160
  198. package/lib/directives.js.map +0 -7
  199. package/lib/directives.mjs +0 -146
  200. package/lib/directives.mjs.map +0 -7
  201. package/lib/extractImplicitTypesRuntime.d.ts +0 -4
  202. package/lib/extractImplicitTypesRuntime.d.ts.map +0 -1
  203. package/lib/extractImplicitTypesRuntime.js +0 -123
  204. package/lib/extractImplicitTypesRuntime.js.map +0 -7
  205. package/lib/extractImplicitTypesRuntime.mjs +0 -114
  206. package/lib/extractImplicitTypesRuntime.mjs.map +0 -7
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/benchmarks/swapi-schema/makeExecutableSchema.ts"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/*\n * Taken from https://github.com/ardatan/graphql-tools/blob/820b4d3e052a8fb08b96a9d45456355a7affc168/\n * MIT license https://github.com/ardatan/graphql-tools/blob/820b4d3e052a8fb08b96a9d45456355a7affc168/LICENSE\n */\n\nimport {\n DocumentNode,\n EnumValueDefinitionNode,\n FieldDefinitionNode,\n GraphQLArgumentConfig,\n GraphQLBoolean,\n GraphQLDirective,\n GraphQLEnumType,\n GraphQLEnumValueConfig,\n GraphQLEnumValueConfigMap,\n GraphQLField,\n GraphQLFieldConfig,\n GraphQLFieldConfigArgumentMap,\n GraphQLFieldConfigMap,\n GraphQLFloat,\n GraphQLID,\n GraphQLInputFieldConfig,\n GraphQLInputFieldConfigMap,\n GraphQLInputObjectType,\n GraphQLInputObjectTypeConfig,\n GraphQLInputType,\n GraphQLInt,\n GraphQLInterfaceType,\n GraphQLInterfaceTypeConfig,\n GraphQLList,\n GraphQLNamedType,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLObjectTypeConfig,\n GraphQLScalarType,\n GraphQLSchema,\n GraphQLString,\n GraphQLType,\n GraphQLUnionType,\n InputValueDefinitionNode,\n Kind,\n buildASTSchema,\n getNullableType,\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isLeafType,\n isListType,\n isNamedType,\n isNonNullType,\n isObjectType,\n isScalarType,\n isSpecifiedDirective,\n isSpecifiedScalarType,\n isUnionType,\n} from \"graphql\";\nimport { Resolvers } from \"../../types\";\nimport { Maybe } from \"../../jsutils/Maybe\";\n\nexport const makeExecutableSchema = <TSource, TContext>({\n typeDefs,\n resolvers,\n}: {\n typeDefs: DocumentNode;\n resolvers: Resolvers<TSource, TContext>;\n}): GraphQLSchema => {\n const schema = buildASTSchema(typeDefs);\n return createNewSchemaWithResolvers(schema, resolvers);\n};\n\nconst createNewSchemaWithResolvers = <TSource, TContext>(\n schema: GraphQLSchema,\n resolvers: Resolvers<TSource, TContext>,\n): GraphQLSchema => {\n schema = mapSchema(schema, {\n [MapperKind.SCALAR_TYPE]: (type) => {\n const config = type.toConfig();\n const resolverValue: any = resolvers[type.name];\n if (!isSpecifiedScalarType(type) && resolverValue != null) {\n for (const fieldName in resolverValue) {\n if (fieldName.startsWith(\"__\")) {\n (config as any)[fieldName.substring(2)] = resolverValue[fieldName];\n } else if (fieldName === \"astNode\" && config.astNode != null) {\n config.astNode = {\n ...config.astNode,\n description:\n (resolverValue as GraphQLScalarType)?.astNode?.description ??\n config.astNode.description,\n directives: (config.astNode.directives ?? []).concat(\n (resolverValue as GraphQLScalarType)?.astNode?.directives ?? [],\n ),\n };\n } else if (\n fieldName === \"extensionASTNodes\" &&\n config.extensionASTNodes != null\n ) {\n config.extensionASTNodes = config.extensionASTNodes.concat(\n (resolverValue as GraphQLScalarType)?.extensionASTNodes ?? [],\n );\n } else if (\n fieldName === \"extensions\" &&\n config.extensions != null &&\n (resolverValue as GraphQLScalarType).extensions != null\n ) {\n config.extensions = Object.assign(\n Object.create(null),\n type.extensions,\n (resolverValue as GraphQLScalarType).extensions,\n );\n } else {\n (config as any)[fieldName] = resolverValue[fieldName];\n }\n }\n\n return new GraphQLScalarType(config);\n }\n },\n [MapperKind.ENUM_TYPE]: (type) => {\n const resolverValue: any = resolvers[type.name];\n\n const config = type.toConfig();\n const enumValueConfigMap = config.values;\n\n if (resolverValue != null) {\n for (const fieldName in resolverValue) {\n if (fieldName.startsWith(\"__\")) {\n (config as any)[fieldName.substring(2)] = resolverValue[fieldName];\n } else if (fieldName === \"astNode\" && config.astNode != null) {\n config.astNode = {\n ...config.astNode,\n description:\n (resolverValue as GraphQLScalarType)?.astNode?.description ??\n config.astNode.description,\n directives: (config.astNode.directives ?? []).concat(\n (resolverValue as GraphQLEnumType)?.astNode?.directives ?? [],\n ),\n };\n } else if (\n fieldName === \"extensionASTNodes\" &&\n config.extensionASTNodes != null\n ) {\n config.extensionASTNodes = config.extensionASTNodes.concat(\n (resolverValue as GraphQLEnumType)?.extensionASTNodes ?? [],\n );\n } else if (\n fieldName === \"extensions\" &&\n config.extensions != null &&\n (resolverValue as GraphQLEnumType).extensions != null\n ) {\n config.extensions = Object.assign(\n Object.create(null),\n type.extensions,\n (resolverValue as GraphQLEnumType).extensions,\n );\n } else if (enumValueConfigMap[fieldName]) {\n enumValueConfigMap[fieldName].value = resolverValue[fieldName];\n }\n }\n\n return new GraphQLEnumType(config);\n }\n },\n [MapperKind.UNION_TYPE]: (type) => {\n const resolverValue: any = resolvers[type.name];\n\n if (resolverValue != null) {\n const config = type.toConfig();\n\n if (resolverValue[\"__resolveType\"]) {\n config.resolveType = resolverValue[\"__resolveType\"];\n }\n\n return new GraphQLUnionType(config);\n }\n },\n [MapperKind.OBJECT_TYPE]: (type) => {\n const resolverValue: any = resolvers[type.name];\n if (resolverValue != null) {\n const config = type.toConfig();\n\n if (resolverValue[\"__isTypeOf\"]) {\n config.isTypeOf = resolverValue[\"__isTypeOf\"];\n }\n\n return new GraphQLObjectType(config);\n }\n },\n [MapperKind.INTERFACE_TYPE]: (type) => {\n const resolverValue: any = resolvers[type.name];\n if (resolverValue != null) {\n const config = type.toConfig();\n\n if (resolverValue[\"__resolveType\"]) {\n config.resolveType = resolverValue[\"__resolveType\"];\n }\n\n return new GraphQLInterfaceType(config);\n }\n },\n [MapperKind.COMPOSITE_FIELD]: (fieldConfig, fieldName, typeName) => {\n const resolverValue: any = resolvers[typeName];\n\n if (resolverValue != null) {\n const fieldResolve = resolverValue[fieldName];\n if (fieldResolve != null) {\n const newFieldConfig = { ...fieldConfig };\n if (typeof fieldResolve === \"function\") {\n // for convenience. Allows shorter syntax in resolver definition file\n newFieldConfig.resolve = fieldResolve.bind(resolverValue);\n } else {\n setFieldProperties(newFieldConfig, fieldResolve);\n }\n return newFieldConfig;\n }\n }\n },\n });\n\n function setFieldProperties(\n field: GraphQLField<any, any> | GraphQLFieldConfig<any, any>,\n propertiesObj: Record<string, any>,\n ) {\n for (const propertyName in propertiesObj) {\n (field as any)[propertyName] = propertiesObj[propertyName];\n }\n }\n\n return schema;\n};\n\nfunction mapSchema(\n schema: GraphQLSchema,\n schemaMapper: SchemaMapper = {},\n): GraphQLSchema {\n const newTypeMap = mapArguments(\n mapFields(\n mapTypes(\n mapDefaultValues(\n mapEnumValues(\n mapTypes(\n mapDefaultValues(\n schema.getTypeMap(),\n schema,\n serializeInputValue,\n ),\n schema,\n schemaMapper,\n (type) => isLeafType(type),\n ),\n schema,\n schemaMapper,\n ),\n schema,\n parseInputValue,\n ),\n schema,\n schemaMapper,\n (type) => !isLeafType(type),\n ),\n schema,\n schemaMapper,\n ),\n schema,\n schemaMapper,\n );\n\n const originalDirectives = schema.getDirectives();\n const newDirectives = mapDirectives(originalDirectives, schema, schemaMapper);\n\n const { typeMap, directives } = rewireTypes(newTypeMap, newDirectives);\n\n return new GraphQLSchema({\n ...schema.toConfig(),\n query: getObjectTypeFromTypeMap(\n typeMap,\n getObjectTypeFromTypeMap(newTypeMap, schema.getQueryType()),\n ),\n mutation: getObjectTypeFromTypeMap(\n typeMap,\n getObjectTypeFromTypeMap(newTypeMap, schema.getMutationType()),\n ),\n subscription: getObjectTypeFromTypeMap(\n typeMap,\n getObjectTypeFromTypeMap(newTypeMap, schema.getSubscriptionType()),\n ),\n types: Object.values(typeMap),\n directives,\n });\n}\n\nfunction mapTypes(\n originalTypeMap: Record<string, GraphQLNamedType>,\n schema: GraphQLSchema,\n schemaMapper: SchemaMapper,\n testFn: (originalType: GraphQLNamedType) => boolean = () => true,\n): Record<string, GraphQLNamedType> {\n const newTypeMap: Record<string, GraphQLNamedType> = {};\n\n for (const typeName in originalTypeMap) {\n if (!typeName.startsWith(\"__\")) {\n const originalType = originalTypeMap[typeName];\n\n if (originalType == null || !testFn(originalType)) {\n newTypeMap[typeName] = originalType;\n continue;\n }\n\n const typeMapper = getTypeMapper(schema, schemaMapper, typeName);\n\n if (typeMapper == null) {\n newTypeMap[typeName] = originalType;\n continue;\n }\n\n const maybeNewType = typeMapper(originalType, schema);\n\n if (maybeNewType === undefined) {\n newTypeMap[typeName] = originalType;\n continue;\n }\n\n newTypeMap[typeName] = maybeNewType as GraphQLNamedType;\n }\n }\n\n return newTypeMap;\n}\n\nfunction mapEnumValues(\n originalTypeMap: Record<string, GraphQLNamedType>,\n schema: GraphQLSchema,\n schemaMapper: SchemaMapper,\n): Record<string, GraphQLNamedType> {\n const enumValueMapper = getEnumValueMapper(schemaMapper);\n if (!enumValueMapper) {\n return originalTypeMap;\n }\n\n return mapTypes(\n originalTypeMap,\n schema,\n {\n [MapperKind.ENUM_TYPE]: (type) => {\n const config = type.toConfig();\n const originalEnumValueConfigMap = config.values;\n const newEnumValueConfigMap: GraphQLEnumValueConfigMap = {};\n for (const externalValue in originalEnumValueConfigMap) {\n const originalEnumValueConfig =\n originalEnumValueConfigMap[externalValue];\n const mappedEnumValue = enumValueMapper(\n originalEnumValueConfig,\n type.name,\n schema,\n externalValue,\n );\n if (mappedEnumValue === undefined) {\n newEnumValueConfigMap[externalValue] = originalEnumValueConfig;\n } else if (Array.isArray(mappedEnumValue)) {\n const [newExternalValue, newEnumValueConfig] = mappedEnumValue;\n newEnumValueConfigMap[newExternalValue] =\n newEnumValueConfig === undefined\n ? originalEnumValueConfig\n : newEnumValueConfig;\n } else if (mappedEnumValue !== null) {\n newEnumValueConfigMap[externalValue] = mappedEnumValue;\n }\n }\n return correctASTNodes(\n new GraphQLEnumType({\n ...config,\n values: newEnumValueConfigMap,\n }),\n );\n },\n },\n (type) => isEnumType(type),\n );\n}\n\nfunction mapDefaultValues(\n originalTypeMap: Record<string, GraphQLNamedType>,\n schema: GraphQLSchema,\n fn: IDefaultValueIteratorFn,\n): Record<string, GraphQLNamedType> {\n const newTypeMap = mapArguments(originalTypeMap, schema, {\n [MapperKind.ARGUMENT]: (argumentConfig) => {\n if (argumentConfig.defaultValue === undefined) {\n return argumentConfig;\n }\n\n const maybeNewType = getNewType(originalTypeMap, argumentConfig.type);\n if (maybeNewType != null) {\n return {\n ...argumentConfig,\n defaultValue: fn(maybeNewType, argumentConfig.defaultValue),\n };\n }\n },\n });\n\n return mapFields(newTypeMap, schema, {\n [MapperKind.INPUT_OBJECT_FIELD]: (inputFieldConfig) => {\n if (inputFieldConfig.defaultValue === undefined) {\n return inputFieldConfig;\n }\n\n const maybeNewType = getNewType(newTypeMap, inputFieldConfig.type);\n if (maybeNewType != null) {\n return {\n ...inputFieldConfig,\n defaultValue: fn(maybeNewType, inputFieldConfig.defaultValue),\n };\n }\n },\n });\n}\n\nfunction getNewType<T extends GraphQLType>(\n newTypeMap: Record<string, GraphQLNamedType>,\n type: T,\n): T | null {\n if (isListType(type)) {\n const newType = getNewType(newTypeMap, type.ofType);\n return newType != null ? (new GraphQLList(newType) as T) : null;\n } else if (isNonNullType(type)) {\n const newType = getNewType(newTypeMap, type.ofType);\n return newType != null ? (new GraphQLNonNull(newType) as T) : null;\n } else if (isNamedType(type)) {\n const newType = newTypeMap[type.name];\n return newType != null ? (newType as T) : null;\n }\n\n return null;\n}\n\nfunction mapFields(\n originalTypeMap: Record<string, GraphQLNamedType>,\n schema: GraphQLSchema,\n schemaMapper: SchemaMapper,\n): Record<string, GraphQLNamedType> {\n const newTypeMap: Record<string, GraphQLNamedType> = {};\n\n for (const typeName in originalTypeMap) {\n if (!typeName.startsWith(\"__\")) {\n const originalType = originalTypeMap[typeName];\n\n if (\n !isObjectType(originalType) &&\n !isInterfaceType(originalType) &&\n !isInputObjectType(originalType)\n ) {\n newTypeMap[typeName] = originalType;\n continue;\n }\n\n const fieldMapper = getFieldMapper(schema, schemaMapper, typeName);\n if (fieldMapper == null) {\n newTypeMap[typeName] = originalType;\n continue;\n }\n\n const config = originalType.toConfig();\n\n const originalFieldConfigMap = config.fields;\n const newFieldConfigMap:\n | GraphQLFieldConfigMap<unknown, unknown>\n | GraphQLInputFieldConfigMap = {};\n for (const fieldName in originalFieldConfigMap) {\n const originalFieldConfig = originalFieldConfigMap[fieldName];\n const mappedField = fieldMapper(\n originalFieldConfig,\n fieldName,\n typeName,\n schema,\n );\n if (mappedField === undefined) {\n newFieldConfigMap[fieldName] = originalFieldConfig;\n } else if (Array.isArray(mappedField)) {\n const [newFieldName, newFieldConfig] = mappedField;\n if (newFieldConfig.astNode != null) {\n newFieldConfig.astNode = {\n ...newFieldConfig.astNode,\n name: {\n ...newFieldConfig.astNode.name,\n value: newFieldName,\n },\n };\n }\n newFieldConfigMap[newFieldName] =\n newFieldConfig === undefined ? originalFieldConfig : newFieldConfig;\n } else if (mappedField !== null) {\n newFieldConfigMap[fieldName] = mappedField;\n }\n }\n\n if (isObjectType(originalType)) {\n newTypeMap[typeName] = correctASTNodes(\n new GraphQLObjectType({\n ...(config as GraphQLObjectTypeConfig<any, any>),\n fields: newFieldConfigMap as GraphQLFieldConfigMap<\n unknown,\n unknown\n >,\n }),\n );\n } else if (isInterfaceType(originalType)) {\n newTypeMap[typeName] = correctASTNodes(\n new GraphQLInterfaceType({\n ...(config as GraphQLInterfaceTypeConfig<any, any>),\n fields: newFieldConfigMap as GraphQLFieldConfigMap<\n unknown,\n unknown\n >,\n }),\n );\n } else {\n newTypeMap[typeName] = correctASTNodes(\n new GraphQLInputObjectType({\n ...(config as GraphQLInputObjectTypeConfig),\n fields: newFieldConfigMap as GraphQLInputFieldConfigMap,\n }),\n );\n }\n }\n }\n\n return newTypeMap;\n}\n\nfunction mapArguments(\n originalTypeMap: Record<string, GraphQLNamedType>,\n schema: GraphQLSchema,\n schemaMapper: SchemaMapper,\n): Record<string, GraphQLNamedType> {\n const newTypeMap: Record<string, GraphQLNamedType> = {};\n\n for (const typeName in originalTypeMap) {\n if (!typeName.startsWith(\"__\")) {\n const originalType = originalTypeMap[typeName];\n\n if (!isObjectType(originalType) && !isInterfaceType(originalType)) {\n newTypeMap[typeName] = originalType;\n continue;\n }\n\n const argumentMapper = getArgumentMapper(schemaMapper);\n if (argumentMapper == null) {\n newTypeMap[typeName] = originalType;\n continue;\n }\n\n const config = originalType.toConfig();\n\n const originalFieldConfigMap = config.fields;\n const newFieldConfigMap:\n | GraphQLFieldConfigMap<unknown, unknown>\n | GraphQLInputFieldConfigMap = {};\n for (const fieldName in originalFieldConfigMap) {\n const originalFieldConfig = originalFieldConfigMap[fieldName];\n const originalArgumentConfigMap = originalFieldConfig.args;\n\n if (originalArgumentConfigMap == null) {\n newFieldConfigMap[fieldName] = originalFieldConfig;\n continue;\n }\n\n const argumentNames = Object.keys(originalArgumentConfigMap);\n\n if (!argumentNames.length) {\n newFieldConfigMap[fieldName] = originalFieldConfig;\n continue;\n }\n\n const newArgumentConfigMap: GraphQLFieldConfigArgumentMap = {};\n\n for (const argumentName of argumentNames) {\n const originalArgumentConfig =\n originalArgumentConfigMap[argumentName];\n\n const mappedArgument = argumentMapper(\n originalArgumentConfig,\n fieldName,\n typeName,\n schema,\n );\n\n if (mappedArgument === undefined) {\n newArgumentConfigMap[argumentName] = originalArgumentConfig;\n } else if (Array.isArray(mappedArgument)) {\n const [newArgumentName, newArgumentConfig] = mappedArgument;\n newArgumentConfigMap[newArgumentName] = newArgumentConfig;\n } else if (mappedArgument !== null) {\n newArgumentConfigMap[argumentName] = mappedArgument;\n }\n }\n\n newFieldConfigMap[fieldName] = {\n ...originalFieldConfig,\n args: newArgumentConfigMap,\n };\n }\n\n if (isObjectType(originalType)) {\n newTypeMap[typeName] = new GraphQLObjectType({\n ...(config as unknown as GraphQLObjectTypeConfig<any, any>),\n fields: newFieldConfigMap as GraphQLFieldConfigMap<unknown, unknown>,\n });\n } else if (isInterfaceType(originalType)) {\n newTypeMap[typeName] = new GraphQLInterfaceType({\n ...(config as unknown as GraphQLInterfaceTypeConfig<any, any>),\n fields: newFieldConfigMap as GraphQLFieldConfigMap<unknown, unknown>,\n });\n } else {\n newTypeMap[typeName] = new GraphQLInputObjectType({\n ...(config as unknown as GraphQLInputObjectTypeConfig),\n fields: newFieldConfigMap as GraphQLInputFieldConfigMap,\n });\n }\n }\n }\n\n return newTypeMap;\n}\n\nfunction mapDirectives(\n originalDirectives: ReadonlyArray<GraphQLDirective>,\n schema: GraphQLSchema,\n schemaMapper: SchemaMapper,\n): Array<GraphQLDirective> {\n const directiveMapper = getDirectiveMapper(schemaMapper);\n if (directiveMapper == null) {\n return originalDirectives.slice();\n }\n\n const newDirectives: Array<GraphQLDirective> = [];\n\n for (const directive of originalDirectives) {\n const mappedDirective = directiveMapper(directive, schema);\n if (mappedDirective === undefined) {\n newDirectives.push(directive);\n } else if (mappedDirective !== null) {\n newDirectives.push(mappedDirective);\n }\n }\n\n return newDirectives;\n}\n\nfunction getTypeSpecifiers(\n schema: GraphQLSchema,\n typeName: string,\n): Array<MapperKind> {\n const type = schema.getType(typeName);\n const specifiers = [MapperKind.TYPE];\n\n if (isObjectType(type)) {\n specifiers.push(MapperKind.COMPOSITE_TYPE, MapperKind.OBJECT_TYPE);\n if (typeName === schema.getQueryType()?.name) {\n specifiers.push(MapperKind.ROOT_OBJECT, MapperKind.QUERY);\n } else if (typeName === schema.getMutationType()?.name) {\n specifiers.push(MapperKind.ROOT_OBJECT, MapperKind.MUTATION);\n } else if (typeName === schema.getSubscriptionType()?.name) {\n specifiers.push(MapperKind.ROOT_OBJECT, MapperKind.SUBSCRIPTION);\n }\n } else if (isInputObjectType(type)) {\n specifiers.push(MapperKind.INPUT_OBJECT_TYPE);\n } else if (isInterfaceType(type)) {\n specifiers.push(\n MapperKind.COMPOSITE_TYPE,\n MapperKind.ABSTRACT_TYPE,\n MapperKind.INTERFACE_TYPE,\n );\n } else if (isUnionType(type)) {\n specifiers.push(\n MapperKind.COMPOSITE_TYPE,\n MapperKind.ABSTRACT_TYPE,\n MapperKind.UNION_TYPE,\n );\n } else if (isEnumType(type)) {\n specifiers.push(MapperKind.ENUM_TYPE);\n } else if (isScalarType(type)) {\n specifiers.push(MapperKind.SCALAR_TYPE);\n }\n\n return specifiers;\n}\n\nfunction getTypeMapper(\n schema: GraphQLSchema,\n schemaMapper: SchemaMapper,\n typeName: string,\n): NamedTypeMapper | null {\n const specifiers = getTypeSpecifiers(schema, typeName);\n let typeMapper: NamedTypeMapper | undefined;\n const stack = [...specifiers];\n while (!typeMapper && stack.length > 0) {\n const next = stack.pop() as MapperKind;\n typeMapper = schemaMapper[next] as NamedTypeMapper;\n }\n\n return typeMapper != null ? typeMapper : null;\n}\n\nfunction getFieldSpecifiers(\n schema: GraphQLSchema,\n typeName: string,\n): SchemaFieldMapperTypes {\n const type = schema.getType(typeName);\n const specifiers: SchemaFieldMapperTypes = [MapperKind.FIELD];\n\n if (isObjectType(type)) {\n specifiers.push(MapperKind.COMPOSITE_FIELD, MapperKind.OBJECT_FIELD);\n if (typeName === schema.getQueryType()?.name) {\n specifiers.push(MapperKind.ROOT_FIELD, MapperKind.QUERY_ROOT_FIELD);\n } else if (typeName === schema.getMutationType()?.name) {\n specifiers.push(MapperKind.ROOT_FIELD, MapperKind.MUTATION_ROOT_FIELD);\n } else if (typeName === schema.getSubscriptionType()?.name) {\n specifiers.push(\n MapperKind.ROOT_FIELD,\n MapperKind.SUBSCRIPTION_ROOT_FIELD,\n );\n }\n } else if (isInterfaceType(type)) {\n specifiers.push(MapperKind.COMPOSITE_FIELD, MapperKind.INTERFACE_FIELD);\n } else if (isInputObjectType(type)) {\n specifiers.push(MapperKind.INPUT_OBJECT_FIELD);\n }\n\n return specifiers;\n}\n\nfunction getFieldMapper<\n F extends GraphQLFieldConfig<any, any> | GraphQLInputFieldConfig,\n>(\n schema: GraphQLSchema,\n schemaMapper: SchemaMapper,\n typeName: string,\n): GenericFieldMapper<F> | null {\n const specifiers = getFieldSpecifiers(schema, typeName);\n let fieldMapper: GenericFieldMapper<F> | undefined;\n const stack = [...specifiers];\n while (!fieldMapper && stack.length > 0) {\n // It is safe to use as here as we check the length.\n const next = stack.pop() as MapperKind;\n // TODO: fix this as unknown cast\n fieldMapper = schemaMapper[next] as unknown as GenericFieldMapper<F>;\n }\n\n return fieldMapper ?? null;\n}\n\nfunction getArgumentMapper(schemaMapper: SchemaMapper): ArgumentMapper | null {\n const argumentMapper = schemaMapper[MapperKind.ARGUMENT];\n return argumentMapper != null ? argumentMapper : null;\n}\n\nfunction getDirectiveMapper(\n schemaMapper: SchemaMapper,\n): DirectiveMapper | null {\n const directiveMapper = schemaMapper[MapperKind.DIRECTIVE];\n return directiveMapper != null ? directiveMapper : null;\n}\n\nfunction getEnumValueMapper(\n schemaMapper: SchemaMapper,\n): EnumValueMapper | null {\n const enumValueMapper = schemaMapper[MapperKind.ENUM_VALUE];\n return enumValueMapper != null ? enumValueMapper : null;\n}\n\nfunction correctASTNodes(type: GraphQLObjectType): GraphQLObjectType;\nfunction correctASTNodes(type: GraphQLInterfaceType): GraphQLInterfaceType;\nfunction correctASTNodes(type: GraphQLInputObjectType): GraphQLInputObjectType;\nfunction correctASTNodes(type: GraphQLEnumType): GraphQLEnumType;\nfunction correctASTNodes(type: GraphQLNamedType): GraphQLNamedType {\n if (isObjectType(type)) {\n const config = (type as GraphQLObjectType).toConfig();\n if (config.astNode != null) {\n const fields: Array<FieldDefinitionNode> = [];\n for (const fieldName in config.fields) {\n const fieldConfig = config.fields[fieldName];\n\n if (fieldConfig.astNode != null) {\n fields.push(fieldConfig.astNode);\n }\n }\n\n config.astNode = {\n ...config.astNode,\n kind: Kind.OBJECT_TYPE_DEFINITION,\n fields,\n };\n }\n\n if (config.extensionASTNodes != null) {\n config.extensionASTNodes = config.extensionASTNodes.map((node) => ({\n ...node,\n kind: Kind.OBJECT_TYPE_EXTENSION,\n fields: undefined,\n }));\n }\n\n return new GraphQLObjectType(config);\n } else if (isInterfaceType(type)) {\n const config = (type as GraphQLInterfaceType).toConfig();\n if (config.astNode != null) {\n const fields: Array<FieldDefinitionNode> = [];\n for (const fieldName in config.fields) {\n const fieldConfig = config.fields[fieldName];\n\n if (fieldConfig.astNode != null) {\n fields.push(fieldConfig.astNode);\n }\n }\n config.astNode = {\n ...config.astNode,\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n fields,\n };\n }\n\n if (config.extensionASTNodes != null) {\n config.extensionASTNodes = config.extensionASTNodes.map((node) => ({\n ...node,\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n fields: undefined,\n }));\n }\n\n return new GraphQLInterfaceType(config);\n } else if (isInputObjectType(type)) {\n const config = (type as GraphQLInputObjectType).toConfig();\n if (config.astNode != null) {\n const fields: Array<InputValueDefinitionNode> = [];\n for (const fieldName in config.fields) {\n const fieldConfig = config.fields[fieldName];\n\n if (fieldConfig.astNode != null) {\n fields.push(fieldConfig.astNode);\n }\n }\n config.astNode = {\n ...config.astNode,\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n fields,\n };\n }\n\n if (config.extensionASTNodes != null) {\n config.extensionASTNodes = config.extensionASTNodes.map((node) => ({\n ...node,\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n fields: undefined,\n }));\n }\n\n return new GraphQLInputObjectType(config);\n } else if (isEnumType(type)) {\n const config = (type as GraphQLEnumType).toConfig();\n if (config.astNode != null) {\n const values: Array<EnumValueDefinitionNode> = [];\n for (const enumKey in config.values) {\n const enumValueConfig = config.values[enumKey];\n if (enumValueConfig.astNode != null) {\n values.push(enumValueConfig.astNode);\n }\n }\n config.astNode = {\n ...config.astNode,\n values,\n };\n }\n\n if (config.extensionASTNodes != null) {\n config.extensionASTNodes = config.extensionASTNodes.map((node) => ({\n ...node,\n values: undefined,\n }));\n }\n\n return new GraphQLEnumType(config);\n } else {\n return type;\n }\n}\n\nfunction getObjectTypeFromTypeMap(\n typeMap: Record<string, GraphQLNamedType>,\n type: Maybe<GraphQLObjectType>,\n): GraphQLObjectType | undefined {\n if (type) {\n const maybeObjectType = typeMap[type.name];\n if (isObjectType(maybeObjectType)) {\n return maybeObjectType;\n }\n }\n}\n\nenum MapperKind {\n TYPE = \"MapperKind.TYPE\",\n SCALAR_TYPE = \"MapperKind.SCALAR_TYPE\",\n ENUM_TYPE = \"MapperKind.ENUM_TYPE\",\n COMPOSITE_TYPE = \"MapperKind.COMPOSITE_TYPE\",\n OBJECT_TYPE = \"MapperKind.OBJECT_TYPE\",\n INPUT_OBJECT_TYPE = \"MapperKind.INPUT_OBJECT_TYPE\",\n ABSTRACT_TYPE = \"MapperKind.ABSTRACT_TYPE\",\n UNION_TYPE = \"MapperKind.UNION_TYPE\",\n INTERFACE_TYPE = \"MapperKind.INTERFACE_TYPE\",\n ROOT_OBJECT = \"MapperKind.ROOT_OBJECT\",\n QUERY = \"MapperKind.QUERY\",\n MUTATION = \"MapperKind.MUTATION\",\n SUBSCRIPTION = \"MapperKind.SUBSCRIPTION\",\n DIRECTIVE = \"MapperKind.DIRECTIVE\",\n FIELD = \"MapperKind.FIELD\",\n COMPOSITE_FIELD = \"MapperKind.COMPOSITE_FIELD\",\n OBJECT_FIELD = \"MapperKind.OBJECT_FIELD\",\n ROOT_FIELD = \"MapperKind.ROOT_FIELD\",\n QUERY_ROOT_FIELD = \"MapperKind.QUERY_ROOT_FIELD\",\n MUTATION_ROOT_FIELD = \"MapperKind.MUTATION_ROOT_FIELD\",\n SUBSCRIPTION_ROOT_FIELD = \"MapperKind.SUBSCRIPTION_ROOT_FIELD\",\n INTERFACE_FIELD = \"MapperKind.INTERFACE_FIELD\",\n INPUT_OBJECT_FIELD = \"MapperKind.INPUT_OBJECT_FIELD\",\n ARGUMENT = \"MapperKind.ARGUMENT\",\n ENUM_VALUE = \"MapperKind.ENUM_VALUE\",\n}\n\ninterface SchemaMapper {\n [MapperKind.TYPE]?: NamedTypeMapper;\n [MapperKind.SCALAR_TYPE]?: ScalarTypeMapper;\n [MapperKind.ENUM_TYPE]?: EnumTypeMapper;\n [MapperKind.COMPOSITE_TYPE]?: CompositeTypeMapper;\n [MapperKind.OBJECT_TYPE]?: ObjectTypeMapper;\n [MapperKind.INPUT_OBJECT_TYPE]?: InputObjectTypeMapper;\n [MapperKind.ABSTRACT_TYPE]?: AbstractTypeMapper;\n [MapperKind.UNION_TYPE]?: UnionTypeMapper;\n [MapperKind.INTERFACE_TYPE]?: InterfaceTypeMapper;\n [MapperKind.ROOT_OBJECT]?: ObjectTypeMapper;\n [MapperKind.QUERY]?: ObjectTypeMapper;\n [MapperKind.MUTATION]?: ObjectTypeMapper;\n [MapperKind.SUBSCRIPTION]?: ObjectTypeMapper;\n [MapperKind.ENUM_VALUE]?: EnumValueMapper;\n [MapperKind.FIELD]?: GenericFieldMapper<\n GraphQLFieldConfig<any, any> | GraphQLInputFieldConfig\n >;\n [MapperKind.OBJECT_FIELD]?: FieldMapper;\n [MapperKind.ROOT_FIELD]?: FieldMapper;\n [MapperKind.QUERY_ROOT_FIELD]?: FieldMapper;\n [MapperKind.MUTATION_ROOT_FIELD]?: FieldMapper;\n [MapperKind.SUBSCRIPTION_ROOT_FIELD]?: FieldMapper;\n [MapperKind.INTERFACE_FIELD]?: FieldMapper;\n [MapperKind.COMPOSITE_FIELD]?: FieldMapper;\n [MapperKind.ARGUMENT]?: ArgumentMapper;\n [MapperKind.INPUT_OBJECT_FIELD]?: InputFieldMapper;\n [MapperKind.DIRECTIVE]?: DirectiveMapper;\n}\n\ntype SchemaFieldMapperTypes = Array<\n | MapperKind.FIELD\n | MapperKind.COMPOSITE_FIELD\n | MapperKind.OBJECT_FIELD\n | MapperKind.ROOT_FIELD\n | MapperKind.QUERY_ROOT_FIELD\n | MapperKind.MUTATION_ROOT_FIELD\n | MapperKind.SUBSCRIPTION_ROOT_FIELD\n | MapperKind.INTERFACE_FIELD\n | MapperKind.INPUT_OBJECT_FIELD\n>;\n\ntype NamedTypeMapper = (\n type: GraphQLNamedType,\n schema: GraphQLSchema,\n) => GraphQLNamedType | null | undefined;\n\ntype ScalarTypeMapper = (\n type: GraphQLScalarType,\n schema: GraphQLSchema,\n) => GraphQLScalarType | null | undefined;\n\ntype EnumTypeMapper = (\n type: GraphQLEnumType,\n schema: GraphQLSchema,\n) => GraphQLEnumType | null | undefined;\n\ntype EnumValueMapper = (\n valueConfig: GraphQLEnumValueConfig,\n typeName: string,\n schema: GraphQLSchema,\n externalValue: string,\n) =>\n | GraphQLEnumValueConfig\n | [string, GraphQLEnumValueConfig]\n | null\n | undefined;\n\ntype CompositeTypeMapper = (\n type: GraphQLObjectType | GraphQLInterfaceType | GraphQLUnionType,\n schema: GraphQLSchema,\n) =>\n | GraphQLObjectType\n | GraphQLInterfaceType\n | GraphQLUnionType\n | null\n | undefined;\n\ntype ObjectTypeMapper = (\n type: GraphQLObjectType,\n schema: GraphQLSchema,\n) => GraphQLObjectType | null | undefined;\n\ntype InputObjectTypeMapper = (\n type: GraphQLInputObjectType,\n schema: GraphQLSchema,\n) => GraphQLInputObjectType | null | undefined;\n\ntype AbstractTypeMapper = (\n type: GraphQLInterfaceType | GraphQLUnionType,\n schema: GraphQLSchema,\n) => GraphQLInterfaceType | GraphQLUnionType | null | undefined;\n\ntype UnionTypeMapper = (\n type: GraphQLUnionType,\n schema: GraphQLSchema,\n) => GraphQLUnionType | null | undefined;\n\ntype InterfaceTypeMapper = (\n type: GraphQLInterfaceType,\n schema: GraphQLSchema,\n) => GraphQLInterfaceType | null | undefined;\n\ntype DirectiveMapper = (\n directive: GraphQLDirective,\n schema: GraphQLSchema,\n) => GraphQLDirective | null | undefined;\n\ntype GenericFieldMapper<\n F extends GraphQLFieldConfig<any, any> | GraphQLInputFieldConfig,\n> = (\n fieldConfig: F,\n fieldName: string,\n typeName: string,\n schema: GraphQLSchema,\n) => F | [string, F] | null | undefined;\n\ntype FieldMapper = GenericFieldMapper<GraphQLFieldConfig<any, any>>;\n\ntype ArgumentMapper = (\n argumentConfig: GraphQLArgumentConfig,\n fieldName: string,\n typeName: string,\n schema: GraphQLSchema,\n) => GraphQLArgumentConfig | [string, GraphQLArgumentConfig] | null | undefined;\n\ntype InputFieldMapper = GenericFieldMapper<GraphQLInputFieldConfig>;\n\nfunction rewireTypes(\n originalTypeMap: Record<string, GraphQLNamedType | null>,\n directives: ReadonlyArray<GraphQLDirective>,\n): {\n typeMap: Record<string, GraphQLNamedType>;\n directives: Array<GraphQLDirective>;\n} {\n const referenceTypeMap = Object.create(null);\n for (const typeName in originalTypeMap) {\n referenceTypeMap[typeName] = originalTypeMap[typeName];\n }\n const newTypeMap: Record<string, GraphQLNamedType> = Object.create(null);\n\n for (const typeName in referenceTypeMap) {\n const namedType = referenceTypeMap[typeName];\n\n if (namedType == null || typeName.startsWith(\"__\")) {\n continue;\n }\n\n const newName = namedType.name;\n if (newName.startsWith(\"__\")) {\n continue;\n }\n\n if (newTypeMap[newName] != null) {\n console.warn(\n `Duplicate schema type name ${newName} found; keeping the existing one found in the schema`,\n );\n continue;\n }\n\n newTypeMap[newName] = namedType;\n }\n\n for (const typeName in newTypeMap) {\n newTypeMap[typeName] = rewireNamedType(newTypeMap[typeName]);\n }\n\n const newDirectives = directives.map((directive) =>\n rewireDirective(directive),\n );\n\n return {\n typeMap: newTypeMap,\n directives: newDirectives,\n };\n\n function rewireDirective(directive: GraphQLDirective): GraphQLDirective {\n if (isSpecifiedDirective(directive)) {\n return directive;\n }\n const directiveConfig = directive.toConfig();\n directiveConfig.args = rewireArgs(directiveConfig.args);\n return new GraphQLDirective(directiveConfig);\n }\n\n function rewireArgs(\n args: GraphQLFieldConfigArgumentMap,\n ): GraphQLFieldConfigArgumentMap {\n const rewiredArgs: GraphQLFieldConfigArgumentMap = {};\n for (const argName in args) {\n const arg = args[argName];\n const rewiredArgType = rewireType(arg.type);\n if (rewiredArgType != null) {\n arg.type = rewiredArgType;\n rewiredArgs[argName] = arg;\n }\n }\n return rewiredArgs;\n }\n\n function rewireNamedType<T extends GraphQLNamedType>(type: T) {\n if (isObjectType(type)) {\n const config = (type as GraphQLObjectType).toConfig();\n const newConfig = {\n ...config,\n fields: () => rewireFields(config.fields),\n interfaces: () => rewireNamedTypes(config.interfaces),\n };\n return new GraphQLObjectType(newConfig);\n } else if (isInterfaceType(type)) {\n const config = (type as GraphQLInterfaceType).toConfig();\n const newConfig: any = {\n ...config,\n fields: () => rewireFields(config.fields),\n };\n if (\"interfaces\" in newConfig) {\n newConfig.interfaces = () =>\n rewireNamedTypes(\n (config as unknown as { interfaces: Array<GraphQLInterfaceType> })\n .interfaces,\n );\n }\n return new GraphQLInterfaceType(newConfig);\n } else if (isUnionType(type)) {\n const config = (type as GraphQLUnionType).toConfig();\n const newConfig = {\n ...config,\n types: () => rewireNamedTypes(config.types),\n };\n return new GraphQLUnionType(newConfig);\n } else if (isInputObjectType(type)) {\n const config = (type as GraphQLInputObjectType).toConfig();\n const newConfig = {\n ...config,\n fields: () => rewireInputFields(config.fields),\n };\n return new GraphQLInputObjectType(newConfig);\n } else if (isEnumType(type)) {\n const enumConfig = (type as GraphQLEnumType).toConfig();\n return new GraphQLEnumType(enumConfig);\n } else if (isScalarType(type)) {\n if (isSpecifiedScalarType(type)) {\n return type;\n }\n const scalarConfig = (type as GraphQLScalarType).toConfig();\n return new GraphQLScalarType(scalarConfig);\n }\n\n throw new Error(`Unexpected schema type: ${type as unknown as string}`);\n }\n\n function rewireFields(\n fields: GraphQLFieldConfigMap<any, any>,\n ): GraphQLFieldConfigMap<any, any> {\n const rewiredFields: GraphQLFieldConfigMap<any, any> = {};\n for (const fieldName in fields) {\n const field = fields[fieldName];\n const rewiredFieldType = rewireType(field.type);\n if (rewiredFieldType != null && field.args) {\n field.type = rewiredFieldType;\n field.args = rewireArgs(field.args);\n rewiredFields[fieldName] = field;\n }\n }\n return rewiredFields;\n }\n\n function rewireInputFields(\n fields: GraphQLInputFieldConfigMap,\n ): GraphQLInputFieldConfigMap {\n const rewiredFields: GraphQLInputFieldConfigMap = {};\n for (const fieldName in fields) {\n const field = fields[fieldName];\n const rewiredFieldType = rewireType(field.type);\n if (rewiredFieldType != null) {\n field.type = rewiredFieldType;\n rewiredFields[fieldName] = field;\n }\n }\n return rewiredFields;\n }\n\n function rewireNamedTypes<T extends GraphQLNamedType>(\n namedTypes: Iterable<T>,\n ): Array<T> {\n const rewiredTypes: Array<T> = [];\n for (const namedType of namedTypes) {\n const rewiredType = rewireType(namedType);\n if (rewiredType != null) {\n rewiredTypes.push(rewiredType);\n }\n }\n return rewiredTypes;\n }\n\n function rewireType<T extends GraphQLType>(type: T): T | null {\n if (isListType(type)) {\n const rewiredType = rewireType(type.ofType);\n return rewiredType != null ? (new GraphQLList(rewiredType) as T) : null;\n } else if (isNonNullType(type)) {\n const rewiredType = rewireType(type.ofType);\n return rewiredType != null\n ? (new GraphQLNonNull(rewiredType) as T)\n : null;\n } else if (isNamedType(type)) {\n let rewiredType = referenceTypeMap[type.name];\n if (rewiredType === undefined) {\n rewiredType = isNamedStub(type)\n ? getBuiltInForStub(type)\n : rewireNamedType(type);\n newTypeMap[rewiredType.name] = referenceTypeMap[type.name] =\n rewiredType;\n }\n return rewiredType != null ? (newTypeMap[rewiredType.name] as T) : null;\n }\n\n return null;\n }\n}\n\nfunction isNamedStub(type: GraphQLNamedType): boolean {\n if (\"getFields\" in type) {\n const fields = type.getFields();\n // eslint-disable-next-line no-unreachable-loop\n for (const fieldName in fields) {\n const field = fields[fieldName];\n return field.name === \"_fake\";\n }\n }\n\n return false;\n}\n\nfunction getBuiltInForStub(type: GraphQLNamedType): GraphQLNamedType {\n switch (type.name) {\n case GraphQLInt.name:\n return GraphQLInt;\n case GraphQLFloat.name:\n return GraphQLFloat;\n case GraphQLString.name:\n return GraphQLString;\n case GraphQLBoolean.name:\n return GraphQLBoolean;\n case GraphQLID.name:\n return GraphQLID;\n default:\n return type;\n }\n}\n\ntype IDefaultValueIteratorFn = (type: GraphQLInputType, value: any) => void;\n\nfunction transformInputValue(\n type: GraphQLInputType,\n value: any,\n inputLeafValueTransformer: Maybe<InputLeafValueTransformer> = null,\n inputObjectValueTransformer: Maybe<InputObjectValueTransformer> = null,\n): any {\n if (value == null) {\n return value;\n }\n\n const nullableType = getNullableType(type);\n\n if (isLeafType(nullableType)) {\n return inputLeafValueTransformer != null\n ? inputLeafValueTransformer(nullableType, value)\n : value;\n } else if (isListType(nullableType)) {\n return asArray(value).map((listMember: any) =>\n transformInputValue(\n nullableType.ofType,\n listMember,\n inputLeafValueTransformer,\n inputObjectValueTransformer,\n ),\n );\n } else if (isInputObjectType(nullableType)) {\n const fields = nullableType.getFields();\n const newValue: GraphQLInputFieldConfigMap = {};\n for (const key in value) {\n const field = fields[key];\n if (field != null) {\n newValue[key] = transformInputValue(\n field.type,\n value[key],\n inputLeafValueTransformer,\n inputObjectValueTransformer,\n );\n }\n }\n return inputObjectValueTransformer != null\n ? inputObjectValueTransformer(nullableType, newValue)\n : newValue;\n }\n\n // unreachable, no other possible return value\n}\n\nfunction serializeInputValue(type: GraphQLInputType, value: any) {\n return transformInputValue(type, value, (t, v) => {\n try {\n return t.serialize(v);\n } catch {\n return v;\n }\n });\n}\n\nfunction parseInputValue(type: GraphQLInputType, value: any) {\n return transformInputValue(type, value, (t, v) => {\n try {\n return t.parseValue(v);\n } catch {\n return v;\n }\n });\n}\n\ntype InputLeafValueTransformer = (\n type: GraphQLEnumType | GraphQLScalarType,\n originalValue: any,\n) => any;\ntype InputObjectValueTransformer = (\n type: GraphQLInputObjectType,\n originalValue: Record<string, any>,\n) => Record<string, any>;\n\nconst asArray = <T>(fns: T | T[]) =>\n Array.isArray(fns) ? fns : fns ? [fns] : [];\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../src/benchmarks/swapi-schema/resolvers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAkNpE,QAAA,MAAM,SAAS,EAAE,2BAA2B,CAAC,WAAW,CA8KvD,CAAC;AAKF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../src/benchmarks/swapi-schema/resolvers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AA0OpE,QAAA,MAAM,SAAS,EAAE,2BAA2B,CAAC,WAAW,CA2LvD,CAAC;AAKF,eAAe,SAAS,CAAC"}
@@ -59,11 +59,34 @@ __export(resolvers_exports, {
59
59
  });
60
60
  module.exports = __toCommonJS(resolvers_exports);
61
61
  var import_iterall = require("iterall");
62
+ var import_mapAsyncIterator = require("../../utilities/mapAsyncIterator");
62
63
  const films = (parent, _args, { models }) => {
63
- return models.getData("/films").filter(({ id }) => parent.films.includes(id));
64
+ return (0, import_mapAsyncIterator.mapAsyncIterator)(
65
+ (0, import_iterall.getAsyncIterator)(
66
+ (0, import_iterall.createAsyncIterator)(
67
+ models.getData("/films").filter(({ id }) => parent.films.includes(id))
68
+ )
69
+ ),
70
+ // this ensures it's a awaitable iterator
71
+ (item) => __async(void 0, null, function* () {
72
+ yield new Promise((resolve) => setTimeout(resolve, 0));
73
+ return item;
74
+ })
75
+ );
64
76
  };
65
77
  const starships = (parent, _args, { models }) => {
66
- return models.getData("/starships").filter(({ id }) => parent.starships.includes(id));
78
+ return (0, import_mapAsyncIterator.mapAsyncIterator)(
79
+ (0, import_iterall.getAsyncIterator)(
80
+ (0, import_iterall.createAsyncIterator)(
81
+ models.getData("/starships").filter(({ id }) => parent.starships.includes(id))
82
+ )
83
+ ),
84
+ // this ensures it's a awaitable iterator
85
+ (item) => __async(void 0, null, function* () {
86
+ yield new Promise((resolve) => setTimeout(resolve, 1));
87
+ return item;
88
+ })
89
+ );
67
90
  };
68
91
  function people(key) {
69
92
  return (parent, _args, { models }) => {
@@ -82,44 +105,44 @@ const species = (parent, _args, { models }) => {
82
105
  const homeworld = (parent, _args, { models }) => {
83
106
  return models.getData("/planets").find((planet2) => planet2.id === parent.homeworld);
84
107
  };
85
- const person = (_parent, { id }, { models }) => {
108
+ const person = (parent, { id }, { models }) => {
86
109
  return models.getData("/people").find((person2) => person2.id === id);
87
110
  };
88
- const planet = (_parent, { id }, { models }) => {
111
+ const planet = (parent, { id }, { models }) => {
89
112
  return models.getData("/planets").find((planet2) => planet2.id === id);
90
113
  };
91
- const film = (_parent, { id }, { models }) => {
114
+ const film = (parent, { id }, { models }) => {
92
115
  return models.getData("/films").find((film2) => film2.id === id);
93
116
  };
94
- const starship = (_parent, { id }, { models }) => {
117
+ const starship = (parent, { id }, { models }) => {
95
118
  return models.getData("/starships").find((starship2) => starship2.id === id);
96
119
  };
97
- const transport = (_parent, { id }, { models }) => {
120
+ const transport = (parent, { id }, { models }) => {
98
121
  return models.getData("/transport").find((transport2) => transport2.id === id);
99
122
  };
100
- const vehicle = (_parent, { id }, { models }) => {
123
+ const vehicle = (parent, { id }, { models }) => {
101
124
  return models.getData("/vehicles").find((vehicle2) => vehicle2.id === id);
102
125
  };
103
- const searchPeopleByName = (_parent, { search }, { models }) => {
126
+ const searchPeopleByName = (parent, { search }, { models }) => {
104
127
  return models.getData("/people").filter((person2) => new RegExp(search, "i").test(person2.name));
105
128
  };
106
- const searchPlanetsByName = (_parent, { search }, { models }) => {
129
+ const searchPlanetsByName = (parent, { search }, { models }) => {
107
130
  return models.getData("/planets").filter((planet2) => new RegExp(search, "i").test(planet2.name));
108
131
  };
109
- const searchFilmsByTitle = (_parent, { search }, { models }) => {
132
+ const searchFilmsByTitle = (parent, { search }, { models }) => {
110
133
  return models.getData("/films").filter((film2) => new RegExp(search, "i").test(film2.title));
111
134
  };
112
- const searchSpeciesByName = (_parent, { search }, { models }) => {
135
+ const searchSpeciesByName = (parent, { search }, { models }) => {
113
136
  return models.getData("/species").filter((species2) => new RegExp(search, "i").test(species2.name));
114
137
  };
115
- const searchStarshipsByName = (_parent, { search }, { models }) => {
138
+ const searchStarshipsByName = (parent, { search }, { models }) => {
116
139
  return models.getData("/starships").filter((starship2) => new RegExp(search, "i").test(starship2.name));
117
140
  };
118
- const searchVehiclesByName = (_parent, { search }, { models }) => {
141
+ const searchVehiclesByName = (parent, { search }, { models }) => {
119
142
  return models.getData("/vehicles").filter((vehicle2) => new RegExp(search, "i").test(vehicle2.name));
120
143
  };
121
144
  const emitPersons = function(_0, _1, _2) {
122
- return __async(this, arguments, function* (_parent, { limit, throwError }, { models }) {
145
+ return __async(this, arguments, function* (parent, { limit, throwError }, { models }) {
123
146
  if (throwError) {
124
147
  throw new Error("error");
125
148
  return;
@@ -133,7 +156,7 @@ const emitPersons = function(_0, _1, _2) {
133
156
  return (0, import_iterall.createAsyncIterator)(output);
134
157
  });
135
158
  };
136
- const searchTransportsByName = (_parent, { search }, { models }) => {
159
+ const searchTransportsByName = (parent, { search }, { models }) => {
137
160
  return models.getData("/transport").filter((transport2) => new RegExp(search, "i").test(transport2.name));
138
161
  };
139
162
  const resolvers = {
@@ -272,7 +295,20 @@ const resolvers = {
272
295
  height: (pilot) => +pilot.height,
273
296
  mass: (pilot) => +pilot.mass,
274
297
  starships,
275
- homeworld
298
+ homeworld,
299
+ films,
300
+ bubblingError: () => {
301
+ throw new Error("Bubbling!");
302
+ },
303
+ bubblingListError: () => {
304
+ return (0, import_iterall.forAwaitEach)([1, 2, 3], (item) => __async(void 0, null, function* () {
305
+ yield new Promise((resolve) => setTimeout(resolve, 0));
306
+ if (item === 2) {
307
+ throw new Error("Bubbling in list!");
308
+ }
309
+ return item;
310
+ }));
311
+ }
276
312
  },
277
313
  Vehicle: {
278
314
  cargo_capacity: (vehicle2) => +vehicle2.cargo_capacity,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/benchmarks/swapi-schema/resolvers.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { GraphQLFieldResolver } from \"graphql/type/definition\";\nimport { IExecutableSchemaDefinition } from \"@graphql-tools/schema\";\nimport { createAsyncIterator } from \"iterall\";\n\nconst films: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter(({ id }: { id: any }) => parent.films.includes(id));\n};\n\nconst starships: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter(({ id }: { id: any }) => parent.starships.includes(id));\n};\n\nfunction people(key: string): GraphQLFieldResolver<any, any, any> {\n return (parent, _args, { models }) => {\n return models\n .getData(\"/people\")\n .filter(({ id }: { id: any }) => parent[key].includes(id));\n };\n}\n\nconst vehicles: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter(({ id }: { id: any }) => parent.vehicles.includes(id));\n};\n\nconst planets: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter(({ id }: { id: any }) => parent.planets.includes(id));\n};\n\nconst species: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter(({ id }: { id: any }) => parent.species.includes(id));\n};\nconst homeworld: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .find((planet: any) => planet.id === parent.homeworld);\n};\n\nconst person: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models.getData(\"/people\").find((person: any) => person.id === id);\n};\n\nconst planet: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models.getData(\"/planets\").find((planet: any) => planet.id === id);\n};\n\nconst film: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models.getData(\"/films\").find((film: any) => film.id === id);\n};\n\nconst starship: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .find((starship: any) => starship.id === id);\n};\n\nconst transport: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .find((transport: any) => transport.id === id);\n};\n\nconst vehicle: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models.getData(\"/vehicles\").find((vehicle: any) => vehicle.id === id);\n};\n\nconst searchPeopleByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/people\")\n .filter((person: any) => new RegExp(search, \"i\").test(person.name));\n};\n\nconst searchPlanetsByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter((planet: any) => new RegExp(search, \"i\").test(planet.name));\n};\n\nconst searchFilmsByTitle: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter((film: any) => new RegExp(search, \"i\").test(film.title));\n};\n\nconst searchSpeciesByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter((species: any) => new RegExp(search, \"i\").test(species.name));\n};\n\nconst searchStarshipsByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter((starship: any) => new RegExp(search, \"i\").test(starship.name));\n};\n\nconst searchVehiclesByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter((vehicle: any) => new RegExp(search, \"i\").test(vehicle.name));\n};\n\nconst emitPersons: GraphQLFieldResolver<any, any, any> = async function (\n _parent,\n { limit, throwError },\n { models },\n) {\n if (throwError) {\n throw new Error(\"error\");\n return;\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output: any = { length: personsLimit };\n for (let i = 0; i < personsLimit; i++) {\n output[i] = { emitPersons: persons[i] };\n }\n return createAsyncIterator(output);\n};\n\nconst searchTransportsByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .filter((transport: any) => new RegExp(search, \"i\").test(transport.name));\n};\n\nconst resolvers: IExecutableSchemaDefinition[\"resolvers\"] = {\n SearchResult: {\n __resolveType(parent: any) {\n return parent.__typename;\n },\n },\n Subscription: {\n emitPersons: {\n subscribe: emitPersons,\n },\n },\n Query: {\n search(parent, { search }, { models }, info) {\n const result = [\n ...searchFilmsByTitle(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Film\") && r,\n ),\n ...searchPeopleByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Person\") && r,\n ),\n ...searchPlanetsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Planet\") && r,\n ),\n ...searchSpeciesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Species\") && r,\n ),\n ...searchStarshipsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Starship\") && r,\n ),\n ...searchTransportsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Transport\") && r,\n ),\n ...searchVehiclesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Vehicle\") && r,\n ),\n ];\n\n return result;\n },\n\n node(parent, args, context, info) {\n let result;\n switch (args.nodeType) {\n case \"Person\": {\n result = person(parent, args, context, info);\n break;\n }\n case \"Starship\": {\n result = starship(parent, args, context, info);\n break;\n }\n case \"Transport\": {\n result = transport(parent, args, context, info);\n break;\n }\n case \"Species\": {\n result = species(parent, args, context, info);\n break;\n }\n case \"Vehicle\": {\n result = vehicle(parent, args, context, info);\n break;\n }\n case \"Planet\": {\n result = planet(parent, args, context, info);\n break;\n }\n case \"Film\": {\n result = film(parent, args, context, info);\n break;\n }\n default:\n throw new Error(`Invalid node type ${args.nodeType}`);\n }\n return {\n ...result,\n __typename: args.nodeType,\n };\n },\n\n person,\n planet,\n film,\n transport,\n starship,\n vehicle,\n searchPeopleByName,\n searchStarshipsByName,\n searchTransportsByName,\n searchSpeciesByName,\n searchVehiclesByName,\n searchPlanetsByName,\n searchFilmsByTitle,\n\n allStarships(_parent, _args, { models }) {\n return models.getData(\"/starships\");\n },\n allFilms(_parent, _args, { models }) {\n return models.getData(\"/films\");\n },\n allPeople(_parent, _args, { models }) {\n return models.getData(\"/people\");\n },\n allPlanets(_parent, _args, { models }) {\n return models.getData(\"/planets\");\n },\n allSpecies(_parent, _args, { models }) {\n return models.getData(\"/species\");\n },\n allTransports(_parent, _args, { models }) {\n return models.getData(\"/transport\");\n },\n advancedDefaultInput(_parent, args) {\n return JSON.stringify(args);\n },\n multiArger(_parent, args) {\n return JSON.stringify(args);\n },\n },\n Film: {\n starships,\n vehicles,\n planets,\n characters: people(\"characters\"),\n species,\n },\n Starship: {\n MGLT: (starship) => +starship.MGLT,\n hyperdrive_rating: (starship) => +starship.hyperdrive_rating,\n cargo_capacity: (starship) => +starship.cargo_capacity,\n passengers: (starship) => +starship.passengers,\n max_atmosphering_speed: (starship) => +starship.max_atmosphering_speed,\n length: (starship) => +starship.length,\n cost_in_credits: (starship) => +starship.cost_in_credits,\n pilots: people(\"pilots\"),\n films,\n },\n Person: {\n height: (pilot) => +pilot.height,\n mass: (pilot) => +pilot.mass,\n starships,\n homeworld,\n },\n Vehicle: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n pilots: people(\"pilots\"),\n },\n Planet: {\n diameter: (planet) => +planet.diameter,\n rotation_period: (planet) => +planet.rotation_period,\n orbital_period: (planet) => +planet.orbital_period,\n population: (planet) => +planet.population,\n residents: people(\"residents\"),\n films,\n },\n Species: {\n average_lifespan: (species) => +species.average_lifespan,\n average_height: (species) => +species.average_height,\n homeworld,\n people: people(\"people\"),\n },\n Transport: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n },\n};\n\nconst forceNumber = (i: string) =>\n Number(i.split(\",\").join(\"\").split(\"-\")[0]) || -1;\n\nexport default resolvers;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { GraphQLFieldResolver } from \"graphql/type/definition\";\nimport { IExecutableSchemaDefinition } from \"@graphql-tools/schema\";\nimport { createAsyncIterator, forAwaitEach, getAsyncIterator } from \"iterall\";\nimport { mapAsyncIterator } from \"../../utilities/mapAsyncIterator\";\n\nconst films: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/films\")\n .filter(({ id }: { id: any }) => parent.films.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n return item;\n },\n );\n};\n\nconst starships: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/starships\")\n .filter(({ id }: { id: any }) => parent.starships.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 1));\n return item;\n },\n );\n};\n\nfunction people(key: string): GraphQLFieldResolver<any, any, any, any> {\n return (parent, _args, { models }) => {\n return models\n .getData(\"/people\")\n .filter(({ id }: { id: any }) => parent[key].includes(id));\n };\n}\n\nconst vehicles: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter(({ id }: { id: any }) => parent.vehicles.includes(id));\n};\n\nconst planets: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter(({ id }: { id: any }) => parent.planets.includes(id));\n};\n\nconst species: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter(({ id }: { id: any }) => parent.species.includes(id));\n};\nconst homeworld: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .find((planet: any) => planet.id === parent.homeworld);\n};\n\nconst person: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/people\").find((person: any) => person.id === id);\n};\n\nconst planet: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/planets\").find((planet: any) => planet.id === id);\n};\n\nconst film: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/films\").find((film: any) => film.id === id);\n};\n\nconst starship: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .find((starship: any) => starship.id === id);\n};\n\nconst transport: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .find((transport: any) => transport.id === id);\n};\n\nconst vehicle: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/vehicles\").find((vehicle: any) => vehicle.id === id);\n};\n\nconst searchPeopleByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/people\")\n .filter((person: any) => new RegExp(search, \"i\").test(person.name));\n};\n\nconst searchPlanetsByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter((planet: any) => new RegExp(search, \"i\").test(planet.name));\n};\n\nconst searchFilmsByTitle: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter((film: any) => new RegExp(search, \"i\").test(film.title));\n};\n\nconst searchSpeciesByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter((species: any) => new RegExp(search, \"i\").test(species.name));\n};\n\nconst searchStarshipsByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter((starship: any) => new RegExp(search, \"i\").test(starship.name));\n};\n\nconst searchVehiclesByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter((vehicle: any) => new RegExp(search, \"i\").test(vehicle.name));\n};\n\nconst emitPersons: GraphQLFieldResolver<any, any, any, any> = async function (\n parent,\n { limit, throwError },\n { models },\n) {\n if (throwError) {\n throw new Error(\"error\");\n return;\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output: any = { length: personsLimit };\n for (let i = 0; i < personsLimit; i++) {\n output[i] = { emitPersons: persons[i] };\n }\n return createAsyncIterator(output);\n};\n\nconst searchTransportsByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .filter((transport: any) => new RegExp(search, \"i\").test(transport.name));\n};\n\nconst resolvers: IExecutableSchemaDefinition[\"resolvers\"] = {\n SearchResult: {\n __resolveType(parent: any) {\n return parent.__typename;\n },\n },\n Subscription: {\n emitPersons: {\n subscribe: emitPersons,\n },\n },\n Query: {\n search(parent, { search }, { models }, info) {\n const result = [\n ...searchFilmsByTitle(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Film\") && r,\n ),\n ...searchPeopleByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Person\") && r,\n ),\n ...searchPlanetsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Planet\") && r,\n ),\n ...searchSpeciesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Species\") && r,\n ),\n ...searchStarshipsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Starship\") && r,\n ),\n ...searchTransportsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Transport\") && r,\n ),\n ...searchVehiclesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Vehicle\") && r,\n ),\n ];\n\n return result;\n },\n\n node(parent, args, context, info) {\n let result;\n switch (args.nodeType) {\n case \"Person\": {\n result = person(parent, args, context, info);\n break;\n }\n case \"Starship\": {\n result = starship(parent, args, context, info);\n break;\n }\n case \"Transport\": {\n result = transport(parent, args, context, info);\n break;\n }\n case \"Species\": {\n result = species(parent, args, context, info);\n break;\n }\n case \"Vehicle\": {\n result = vehicle(parent, args, context, info);\n break;\n }\n case \"Planet\": {\n result = planet(parent, args, context, info);\n break;\n }\n case \"Film\": {\n result = film(parent, args, context, info);\n break;\n }\n default:\n throw new Error(`Invalid node type ${args.nodeType}`);\n }\n return {\n ...result,\n __typename: args.nodeType,\n };\n },\n\n person,\n planet,\n film,\n transport,\n starship,\n vehicle,\n searchPeopleByName,\n searchStarshipsByName,\n searchTransportsByName,\n searchSpeciesByName,\n searchVehiclesByName,\n searchPlanetsByName,\n searchFilmsByTitle,\n\n allStarships(_parent, _args, { models }) {\n return models.getData(\"/starships\");\n },\n allFilms(_parent, _args, { models }) {\n return models.getData(\"/films\");\n },\n allPeople(_parent, _args, { models }) {\n return models.getData(\"/people\");\n },\n allPlanets(_parent, _args, { models }) {\n return models.getData(\"/planets\");\n },\n allSpecies(_parent, _args, { models }) {\n return models.getData(\"/species\");\n },\n allTransports(_parent, _args, { models }) {\n return models.getData(\"/transport\");\n },\n advancedDefaultInput(_parent, args) {\n return JSON.stringify(args);\n },\n multiArger(_parent, args) {\n return JSON.stringify(args);\n },\n },\n Film: {\n starships,\n vehicles,\n planets,\n characters: people(\"characters\"),\n species,\n },\n Starship: {\n MGLT: (starship) => +starship.MGLT,\n hyperdrive_rating: (starship) => +starship.hyperdrive_rating,\n cargo_capacity: (starship) => +starship.cargo_capacity,\n passengers: (starship) => +starship.passengers,\n max_atmosphering_speed: (starship) => +starship.max_atmosphering_speed,\n length: (starship) => +starship.length,\n cost_in_credits: (starship) => +starship.cost_in_credits,\n pilots: people(\"pilots\"),\n films,\n },\n Person: {\n height: (pilot) => +pilot.height,\n mass: (pilot) => +pilot.mass,\n starships,\n homeworld,\n films,\n bubblingError: () => {\n throw new Error(\"Bubbling!\");\n },\n bubblingListError: () => {\n return forAwaitEach([1, 2, 3], async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (item === 2) {\n throw new Error(\"Bubbling in list!\");\n }\n return item;\n });\n },\n },\n Vehicle: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n pilots: people(\"pilots\"),\n },\n Planet: {\n diameter: (planet) => +planet.diameter,\n rotation_period: (planet) => +planet.rotation_period,\n orbital_period: (planet) => +planet.orbital_period,\n population: (planet) => +planet.population,\n residents: people(\"residents\"),\n films,\n },\n Species: {\n average_lifespan: (species) => +species.average_lifespan,\n average_height: (species) => +species.average_height,\n homeworld,\n people: people(\"people\"),\n },\n Transport: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n },\n};\n\nconst forceNumber = (i: string) =>\n Number(i.split(\",\").join(\"\").split(\"-\")[0]) || -1;\n\nexport default resolvers;\n"],
5
+ "mappings": "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",
6
6
  "names": ["planet", "person", "film", "starship", "transport", "vehicle", "species"]
7
7
  }
@@ -39,12 +39,35 @@ var __async = (__this, __arguments, generator) => {
39
39
  };
40
40
 
41
41
  // src/benchmarks/swapi-schema/resolvers.ts
42
- import { createAsyncIterator } from "iterall";
42
+ import { createAsyncIterator, forAwaitEach, getAsyncIterator } from "iterall";
43
+ import { mapAsyncIterator } from "../../utilities/mapAsyncIterator.mjs";
43
44
  var films = (parent, _args, { models }) => {
44
- return models.getData("/films").filter(({ id }) => parent.films.includes(id));
45
+ return mapAsyncIterator(
46
+ getAsyncIterator(
47
+ createAsyncIterator(
48
+ models.getData("/films").filter(({ id }) => parent.films.includes(id))
49
+ )
50
+ ),
51
+ // this ensures it's a awaitable iterator
52
+ (item) => __async(void 0, null, function* () {
53
+ yield new Promise((resolve) => setTimeout(resolve, 0));
54
+ return item;
55
+ })
56
+ );
45
57
  };
46
58
  var starships = (parent, _args, { models }) => {
47
- return models.getData("/starships").filter(({ id }) => parent.starships.includes(id));
59
+ return mapAsyncIterator(
60
+ getAsyncIterator(
61
+ createAsyncIterator(
62
+ models.getData("/starships").filter(({ id }) => parent.starships.includes(id))
63
+ )
64
+ ),
65
+ // this ensures it's a awaitable iterator
66
+ (item) => __async(void 0, null, function* () {
67
+ yield new Promise((resolve) => setTimeout(resolve, 1));
68
+ return item;
69
+ })
70
+ );
48
71
  };
49
72
  function people(key) {
50
73
  return (parent, _args, { models }) => {
@@ -63,44 +86,44 @@ var species = (parent, _args, { models }) => {
63
86
  var homeworld = (parent, _args, { models }) => {
64
87
  return models.getData("/planets").find((planet2) => planet2.id === parent.homeworld);
65
88
  };
66
- var person = (_parent, { id }, { models }) => {
89
+ var person = (parent, { id }, { models }) => {
67
90
  return models.getData("/people").find((person2) => person2.id === id);
68
91
  };
69
- var planet = (_parent, { id }, { models }) => {
92
+ var planet = (parent, { id }, { models }) => {
70
93
  return models.getData("/planets").find((planet2) => planet2.id === id);
71
94
  };
72
- var film = (_parent, { id }, { models }) => {
95
+ var film = (parent, { id }, { models }) => {
73
96
  return models.getData("/films").find((film2) => film2.id === id);
74
97
  };
75
- var starship = (_parent, { id }, { models }) => {
98
+ var starship = (parent, { id }, { models }) => {
76
99
  return models.getData("/starships").find((starship2) => starship2.id === id);
77
100
  };
78
- var transport = (_parent, { id }, { models }) => {
101
+ var transport = (parent, { id }, { models }) => {
79
102
  return models.getData("/transport").find((transport2) => transport2.id === id);
80
103
  };
81
- var vehicle = (_parent, { id }, { models }) => {
104
+ var vehicle = (parent, { id }, { models }) => {
82
105
  return models.getData("/vehicles").find((vehicle2) => vehicle2.id === id);
83
106
  };
84
- var searchPeopleByName = (_parent, { search }, { models }) => {
107
+ var searchPeopleByName = (parent, { search }, { models }) => {
85
108
  return models.getData("/people").filter((person2) => new RegExp(search, "i").test(person2.name));
86
109
  };
87
- var searchPlanetsByName = (_parent, { search }, { models }) => {
110
+ var searchPlanetsByName = (parent, { search }, { models }) => {
88
111
  return models.getData("/planets").filter((planet2) => new RegExp(search, "i").test(planet2.name));
89
112
  };
90
- var searchFilmsByTitle = (_parent, { search }, { models }) => {
113
+ var searchFilmsByTitle = (parent, { search }, { models }) => {
91
114
  return models.getData("/films").filter((film2) => new RegExp(search, "i").test(film2.title));
92
115
  };
93
- var searchSpeciesByName = (_parent, { search }, { models }) => {
116
+ var searchSpeciesByName = (parent, { search }, { models }) => {
94
117
  return models.getData("/species").filter((species2) => new RegExp(search, "i").test(species2.name));
95
118
  };
96
- var searchStarshipsByName = (_parent, { search }, { models }) => {
119
+ var searchStarshipsByName = (parent, { search }, { models }) => {
97
120
  return models.getData("/starships").filter((starship2) => new RegExp(search, "i").test(starship2.name));
98
121
  };
99
- var searchVehiclesByName = (_parent, { search }, { models }) => {
122
+ var searchVehiclesByName = (parent, { search }, { models }) => {
100
123
  return models.getData("/vehicles").filter((vehicle2) => new RegExp(search, "i").test(vehicle2.name));
101
124
  };
102
125
  var emitPersons = function(_0, _1, _2) {
103
- return __async(this, arguments, function* (_parent, { limit, throwError }, { models }) {
126
+ return __async(this, arguments, function* (parent, { limit, throwError }, { models }) {
104
127
  if (throwError) {
105
128
  throw new Error("error");
106
129
  return;
@@ -114,7 +137,7 @@ var emitPersons = function(_0, _1, _2) {
114
137
  return createAsyncIterator(output);
115
138
  });
116
139
  };
117
- var searchTransportsByName = (_parent, { search }, { models }) => {
140
+ var searchTransportsByName = (parent, { search }, { models }) => {
118
141
  return models.getData("/transport").filter((transport2) => new RegExp(search, "i").test(transport2.name));
119
142
  };
120
143
  var resolvers = {
@@ -253,7 +276,20 @@ var resolvers = {
253
276
  height: (pilot) => +pilot.height,
254
277
  mass: (pilot) => +pilot.mass,
255
278
  starships,
256
- homeworld
279
+ homeworld,
280
+ films,
281
+ bubblingError: () => {
282
+ throw new Error("Bubbling!");
283
+ },
284
+ bubblingListError: () => {
285
+ return forAwaitEach([1, 2, 3], (item) => __async(void 0, null, function* () {
286
+ yield new Promise((resolve) => setTimeout(resolve, 0));
287
+ if (item === 2) {
288
+ throw new Error("Bubbling in list!");
289
+ }
290
+ return item;
291
+ }));
292
+ }
257
293
  },
258
294
  Vehicle: {
259
295
  cargo_capacity: (vehicle2) => +vehicle2.cargo_capacity,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/benchmarks/swapi-schema/resolvers.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { GraphQLFieldResolver } from \"graphql/type/definition\";\nimport { IExecutableSchemaDefinition } from \"@graphql-tools/schema\";\nimport { createAsyncIterator } from \"iterall\";\n\nconst films: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter(({ id }: { id: any }) => parent.films.includes(id));\n};\n\nconst starships: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter(({ id }: { id: any }) => parent.starships.includes(id));\n};\n\nfunction people(key: string): GraphQLFieldResolver<any, any, any> {\n return (parent, _args, { models }) => {\n return models\n .getData(\"/people\")\n .filter(({ id }: { id: any }) => parent[key].includes(id));\n };\n}\n\nconst vehicles: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter(({ id }: { id: any }) => parent.vehicles.includes(id));\n};\n\nconst planets: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter(({ id }: { id: any }) => parent.planets.includes(id));\n};\n\nconst species: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter(({ id }: { id: any }) => parent.species.includes(id));\n};\nconst homeworld: GraphQLFieldResolver<any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .find((planet: any) => planet.id === parent.homeworld);\n};\n\nconst person: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models.getData(\"/people\").find((person: any) => person.id === id);\n};\n\nconst planet: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models.getData(\"/planets\").find((planet: any) => planet.id === id);\n};\n\nconst film: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models.getData(\"/films\").find((film: any) => film.id === id);\n};\n\nconst starship: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .find((starship: any) => starship.id === id);\n};\n\nconst transport: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .find((transport: any) => transport.id === id);\n};\n\nconst vehicle: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { id },\n { models },\n) => {\n return models.getData(\"/vehicles\").find((vehicle: any) => vehicle.id === id);\n};\n\nconst searchPeopleByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/people\")\n .filter((person: any) => new RegExp(search, \"i\").test(person.name));\n};\n\nconst searchPlanetsByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter((planet: any) => new RegExp(search, \"i\").test(planet.name));\n};\n\nconst searchFilmsByTitle: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter((film: any) => new RegExp(search, \"i\").test(film.title));\n};\n\nconst searchSpeciesByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter((species: any) => new RegExp(search, \"i\").test(species.name));\n};\n\nconst searchStarshipsByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter((starship: any) => new RegExp(search, \"i\").test(starship.name));\n};\n\nconst searchVehiclesByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter((vehicle: any) => new RegExp(search, \"i\").test(vehicle.name));\n};\n\nconst emitPersons: GraphQLFieldResolver<any, any, any> = async function (\n _parent,\n { limit, throwError },\n { models },\n) {\n if (throwError) {\n throw new Error(\"error\");\n return;\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output: any = { length: personsLimit };\n for (let i = 0; i < personsLimit; i++) {\n output[i] = { emitPersons: persons[i] };\n }\n return createAsyncIterator(output);\n};\n\nconst searchTransportsByName: GraphQLFieldResolver<any, any, any> = (\n _parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .filter((transport: any) => new RegExp(search, \"i\").test(transport.name));\n};\n\nconst resolvers: IExecutableSchemaDefinition[\"resolvers\"] = {\n SearchResult: {\n __resolveType(parent: any) {\n return parent.__typename;\n },\n },\n Subscription: {\n emitPersons: {\n subscribe: emitPersons,\n },\n },\n Query: {\n search(parent, { search }, { models }, info) {\n const result = [\n ...searchFilmsByTitle(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Film\") && r,\n ),\n ...searchPeopleByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Person\") && r,\n ),\n ...searchPlanetsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Planet\") && r,\n ),\n ...searchSpeciesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Species\") && r,\n ),\n ...searchStarshipsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Starship\") && r,\n ),\n ...searchTransportsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Transport\") && r,\n ),\n ...searchVehiclesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Vehicle\") && r,\n ),\n ];\n\n return result;\n },\n\n node(parent, args, context, info) {\n let result;\n switch (args.nodeType) {\n case \"Person\": {\n result = person(parent, args, context, info);\n break;\n }\n case \"Starship\": {\n result = starship(parent, args, context, info);\n break;\n }\n case \"Transport\": {\n result = transport(parent, args, context, info);\n break;\n }\n case \"Species\": {\n result = species(parent, args, context, info);\n break;\n }\n case \"Vehicle\": {\n result = vehicle(parent, args, context, info);\n break;\n }\n case \"Planet\": {\n result = planet(parent, args, context, info);\n break;\n }\n case \"Film\": {\n result = film(parent, args, context, info);\n break;\n }\n default:\n throw new Error(`Invalid node type ${args.nodeType}`);\n }\n return {\n ...result,\n __typename: args.nodeType,\n };\n },\n\n person,\n planet,\n film,\n transport,\n starship,\n vehicle,\n searchPeopleByName,\n searchStarshipsByName,\n searchTransportsByName,\n searchSpeciesByName,\n searchVehiclesByName,\n searchPlanetsByName,\n searchFilmsByTitle,\n\n allStarships(_parent, _args, { models }) {\n return models.getData(\"/starships\");\n },\n allFilms(_parent, _args, { models }) {\n return models.getData(\"/films\");\n },\n allPeople(_parent, _args, { models }) {\n return models.getData(\"/people\");\n },\n allPlanets(_parent, _args, { models }) {\n return models.getData(\"/planets\");\n },\n allSpecies(_parent, _args, { models }) {\n return models.getData(\"/species\");\n },\n allTransports(_parent, _args, { models }) {\n return models.getData(\"/transport\");\n },\n advancedDefaultInput(_parent, args) {\n return JSON.stringify(args);\n },\n multiArger(_parent, args) {\n return JSON.stringify(args);\n },\n },\n Film: {\n starships,\n vehicles,\n planets,\n characters: people(\"characters\"),\n species,\n },\n Starship: {\n MGLT: (starship) => +starship.MGLT,\n hyperdrive_rating: (starship) => +starship.hyperdrive_rating,\n cargo_capacity: (starship) => +starship.cargo_capacity,\n passengers: (starship) => +starship.passengers,\n max_atmosphering_speed: (starship) => +starship.max_atmosphering_speed,\n length: (starship) => +starship.length,\n cost_in_credits: (starship) => +starship.cost_in_credits,\n pilots: people(\"pilots\"),\n films,\n },\n Person: {\n height: (pilot) => +pilot.height,\n mass: (pilot) => +pilot.mass,\n starships,\n homeworld,\n },\n Vehicle: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n pilots: people(\"pilots\"),\n },\n Planet: {\n diameter: (planet) => +planet.diameter,\n rotation_period: (planet) => +planet.rotation_period,\n orbital_period: (planet) => +planet.orbital_period,\n population: (planet) => +planet.population,\n residents: people(\"residents\"),\n films,\n },\n Species: {\n average_lifespan: (species) => +species.average_lifespan,\n average_height: (species) => +species.average_height,\n homeworld,\n people: people(\"people\"),\n },\n Transport: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n },\n};\n\nconst forceNumber = (i: string) =>\n Number(i.split(\",\").join(\"\").split(\"-\")[0]) || -1;\n\nexport default resolvers;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { GraphQLFieldResolver } from \"graphql/type/definition\";\nimport { IExecutableSchemaDefinition } from \"@graphql-tools/schema\";\nimport { createAsyncIterator, forAwaitEach, getAsyncIterator } from \"iterall\";\nimport { mapAsyncIterator } from \"../../utilities/mapAsyncIterator\";\n\nconst films: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/films\")\n .filter(({ id }: { id: any }) => parent.films.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n return item;\n },\n );\n};\n\nconst starships: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return mapAsyncIterator(\n getAsyncIterator(\n createAsyncIterator(\n models\n .getData(\"/starships\")\n .filter(({ id }: { id: any }) => parent.starships.includes(id)),\n ),\n ) as unknown as AsyncIterable<any>,\n // this ensures it's a awaitable iterator\n\n async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 1));\n return item;\n },\n );\n};\n\nfunction people(key: string): GraphQLFieldResolver<any, any, any, any> {\n return (parent, _args, { models }) => {\n return models\n .getData(\"/people\")\n .filter(({ id }: { id: any }) => parent[key].includes(id));\n };\n}\n\nconst vehicles: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter(({ id }: { id: any }) => parent.vehicles.includes(id));\n};\n\nconst planets: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter(({ id }: { id: any }) => parent.planets.includes(id));\n};\n\nconst species: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter(({ id }: { id: any }) => parent.species.includes(id));\n};\nconst homeworld: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n _args,\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .find((planet: any) => planet.id === parent.homeworld);\n};\n\nconst person: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/people\").find((person: any) => person.id === id);\n};\n\nconst planet: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/planets\").find((planet: any) => planet.id === id);\n};\n\nconst film: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/films\").find((film: any) => film.id === id);\n};\n\nconst starship: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .find((starship: any) => starship.id === id);\n};\n\nconst transport: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .find((transport: any) => transport.id === id);\n};\n\nconst vehicle: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { id },\n { models },\n) => {\n return models.getData(\"/vehicles\").find((vehicle: any) => vehicle.id === id);\n};\n\nconst searchPeopleByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/people\")\n .filter((person: any) => new RegExp(search, \"i\").test(person.name));\n};\n\nconst searchPlanetsByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/planets\")\n .filter((planet: any) => new RegExp(search, \"i\").test(planet.name));\n};\n\nconst searchFilmsByTitle: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/films\")\n .filter((film: any) => new RegExp(search, \"i\").test(film.title));\n};\n\nconst searchSpeciesByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/species\")\n .filter((species: any) => new RegExp(search, \"i\").test(species.name));\n};\n\nconst searchStarshipsByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/starships\")\n .filter((starship: any) => new RegExp(search, \"i\").test(starship.name));\n};\n\nconst searchVehiclesByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/vehicles\")\n .filter((vehicle: any) => new RegExp(search, \"i\").test(vehicle.name));\n};\n\nconst emitPersons: GraphQLFieldResolver<any, any, any, any> = async function (\n parent,\n { limit, throwError },\n { models },\n) {\n if (throwError) {\n throw new Error(\"error\");\n return;\n }\n const persons = await models.getData(\"/people\");\n const personsLimit = Math.min(limit, persons.length);\n const output: any = { length: personsLimit };\n for (let i = 0; i < personsLimit; i++) {\n output[i] = { emitPersons: persons[i] };\n }\n return createAsyncIterator(output);\n};\n\nconst searchTransportsByName: GraphQLFieldResolver<any, any, any, any> = (\n parent,\n { search },\n { models },\n) => {\n return models\n .getData(\"/transport\")\n .filter((transport: any) => new RegExp(search, \"i\").test(transport.name));\n};\n\nconst resolvers: IExecutableSchemaDefinition[\"resolvers\"] = {\n SearchResult: {\n __resolveType(parent: any) {\n return parent.__typename;\n },\n },\n Subscription: {\n emitPersons: {\n subscribe: emitPersons,\n },\n },\n Query: {\n search(parent, { search }, { models }, info) {\n const result = [\n ...searchFilmsByTitle(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Film\") && r,\n ),\n ...searchPeopleByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Person\") && r,\n ),\n ...searchPlanetsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Planet\") && r,\n ),\n ...searchSpeciesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Species\") && r,\n ),\n ...searchStarshipsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Starship\") && r,\n ),\n ...searchTransportsByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Transport\") && r,\n ),\n ...searchVehiclesByName(parent, { search }, { models }, info).map(\n (r: any) => (r.__typename = \"Vehicle\") && r,\n ),\n ];\n\n return result;\n },\n\n node(parent, args, context, info) {\n let result;\n switch (args.nodeType) {\n case \"Person\": {\n result = person(parent, args, context, info);\n break;\n }\n case \"Starship\": {\n result = starship(parent, args, context, info);\n break;\n }\n case \"Transport\": {\n result = transport(parent, args, context, info);\n break;\n }\n case \"Species\": {\n result = species(parent, args, context, info);\n break;\n }\n case \"Vehicle\": {\n result = vehicle(parent, args, context, info);\n break;\n }\n case \"Planet\": {\n result = planet(parent, args, context, info);\n break;\n }\n case \"Film\": {\n result = film(parent, args, context, info);\n break;\n }\n default:\n throw new Error(`Invalid node type ${args.nodeType}`);\n }\n return {\n ...result,\n __typename: args.nodeType,\n };\n },\n\n person,\n planet,\n film,\n transport,\n starship,\n vehicle,\n searchPeopleByName,\n searchStarshipsByName,\n searchTransportsByName,\n searchSpeciesByName,\n searchVehiclesByName,\n searchPlanetsByName,\n searchFilmsByTitle,\n\n allStarships(_parent, _args, { models }) {\n return models.getData(\"/starships\");\n },\n allFilms(_parent, _args, { models }) {\n return models.getData(\"/films\");\n },\n allPeople(_parent, _args, { models }) {\n return models.getData(\"/people\");\n },\n allPlanets(_parent, _args, { models }) {\n return models.getData(\"/planets\");\n },\n allSpecies(_parent, _args, { models }) {\n return models.getData(\"/species\");\n },\n allTransports(_parent, _args, { models }) {\n return models.getData(\"/transport\");\n },\n advancedDefaultInput(_parent, args) {\n return JSON.stringify(args);\n },\n multiArger(_parent, args) {\n return JSON.stringify(args);\n },\n },\n Film: {\n starships,\n vehicles,\n planets,\n characters: people(\"characters\"),\n species,\n },\n Starship: {\n MGLT: (starship) => +starship.MGLT,\n hyperdrive_rating: (starship) => +starship.hyperdrive_rating,\n cargo_capacity: (starship) => +starship.cargo_capacity,\n passengers: (starship) => +starship.passengers,\n max_atmosphering_speed: (starship) => +starship.max_atmosphering_speed,\n length: (starship) => +starship.length,\n cost_in_credits: (starship) => +starship.cost_in_credits,\n pilots: people(\"pilots\"),\n films,\n },\n Person: {\n height: (pilot) => +pilot.height,\n mass: (pilot) => +pilot.mass,\n starships,\n homeworld,\n films,\n bubblingError: () => {\n throw new Error(\"Bubbling!\");\n },\n bubblingListError: () => {\n return forAwaitEach([1, 2, 3], async (item) => {\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (item === 2) {\n throw new Error(\"Bubbling in list!\");\n }\n return item;\n });\n },\n },\n Vehicle: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n pilots: people(\"pilots\"),\n },\n Planet: {\n diameter: (planet) => +planet.diameter,\n rotation_period: (planet) => +planet.rotation_period,\n orbital_period: (planet) => +planet.orbital_period,\n population: (planet) => +planet.population,\n residents: people(\"residents\"),\n films,\n },\n Species: {\n average_lifespan: (species) => +species.average_lifespan,\n average_height: (species) => +species.average_height,\n homeworld,\n people: people(\"people\"),\n },\n Transport: {\n cargo_capacity: (vehicle) => +vehicle.cargo_capacity,\n passengers: (vehicle) => +vehicle.passengers,\n max_atmosphering_speed: (vehicle) => +vehicle.max_atmosphering_speed,\n crew: (vehicle) => forceNumber(vehicle.crew),\n length: (vehicle) => +vehicle.length,\n cost_in_credits: (vehicle) => +vehicle.cost_in_credits,\n },\n};\n\nconst forceNumber = (i: string) =>\n Number(i.split(\",\").join(\"\").split(\"-\")[0]) || -1;\n\nexport default resolvers;\n"],
5
+ "mappings": "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",
6
6
  "names": ["planet", "person", "film", "starship", "transport", "vehicle", "species"]
7
7
  }