@graphitation/supermassive 2.4.7 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintcache +1 -1
- package/CHANGELOG.md +18 -2
- package/README.md +2 -42
- package/lib/benchmarks/index.js +3 -3
- package/lib/benchmarks/index.js.map +7 -0
- package/lib/benchmarks/index.mjs +2 -2
- package/lib/benchmarks/index.mjs.map +7 -0
- package/lib/benchmarks/nice-benchmark.js.map +7 -0
- package/lib/benchmarks/nice-benchmark.mjs.map +7 -0
- package/lib/benchmarks/swapi-schema/index.js.map +7 -0
- package/lib/benchmarks/swapi-schema/index.mjs.map +7 -0
- package/lib/benchmarks/swapi-schema/models.js.map +7 -0
- package/lib/benchmarks/swapi-schema/models.mjs.map +7 -0
- package/lib/benchmarks/swapi-schema/resolvers.js.map +7 -0
- package/lib/benchmarks/swapi-schema/resolvers.mjs.map +7 -0
- package/lib/collectFields.d.ts +1 -1
- package/lib/collectFields.d.ts.map +1 -1
- package/lib/collectFields.js.map +7 -0
- package/lib/collectFields.mjs.map +7 -0
- package/lib/definition.js.map +7 -0
- package/lib/definition.mjs.map +7 -0
- package/lib/directives.d.ts +1 -1
- package/lib/directives.d.ts.map +1 -1
- package/lib/directives.js.map +7 -0
- package/lib/directives.mjs.map +7 -0
- package/lib/executeWithSchema.js.map +7 -0
- package/lib/executeWithSchema.mjs.map +7 -0
- package/lib/executeWithoutSchema.d.ts +1 -1
- package/lib/executeWithoutSchema.d.ts.map +1 -1
- package/lib/executeWithoutSchema.js.map +7 -0
- package/lib/executeWithoutSchema.mjs.map +7 -0
- package/lib/extractImplicitTypesRuntime.js.map +7 -0
- package/lib/extractImplicitTypesRuntime.mjs.map +7 -0
- package/lib/hooks/types.js.map +7 -0
- package/lib/hooks/types.mjs.map +7 -0
- package/lib/index.d.ts +6 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -4
- package/lib/index.js.map +7 -0
- package/lib/index.mjs +4 -2
- package/lib/index.mjs.map +7 -0
- package/lib/jsutils/Maybe.js.map +7 -0
- package/lib/jsutils/Maybe.mjs.map +7 -0
- package/lib/jsutils/ObjMap.js.map +7 -0
- package/lib/jsutils/ObjMap.mjs.map +7 -0
- package/lib/jsutils/Path.js.map +7 -0
- package/lib/jsutils/Path.mjs.map +7 -0
- package/lib/jsutils/PromiseOrValue.js.map +7 -0
- package/lib/jsutils/PromiseOrValue.mjs.map +7 -0
- package/lib/jsutils/devAssert.js.map +7 -0
- package/lib/jsutils/devAssert.mjs.map +7 -0
- package/lib/jsutils/didYouMean.js.map +7 -0
- package/lib/jsutils/didYouMean.mjs.map +7 -0
- package/lib/jsutils/identityFunc.js.map +7 -0
- package/lib/jsutils/identityFunc.mjs.map +7 -0
- package/lib/jsutils/inspect.js.map +7 -0
- package/lib/jsutils/inspect.mjs.map +7 -0
- package/lib/jsutils/instanceOf.d.ts.map +1 -1
- package/lib/jsutils/instanceOf.js +1 -4
- package/lib/jsutils/instanceOf.js.map +7 -0
- package/lib/jsutils/instanceOf.mjs +1 -4
- package/lib/jsutils/instanceOf.mjs.map +7 -0
- package/lib/jsutils/invariant.js.map +7 -0
- package/lib/jsutils/invariant.mjs.map +7 -0
- package/lib/jsutils/isAsyncIterable.js.map +7 -0
- package/lib/jsutils/isAsyncIterable.mjs.map +7 -0
- package/lib/jsutils/isIterableObject.js.map +7 -0
- package/lib/jsutils/isIterableObject.mjs.map +7 -0
- package/lib/jsutils/isObjectLike.js.map +7 -0
- package/lib/jsutils/isObjectLike.mjs.map +7 -0
- package/lib/jsutils/isPromise.js.map +7 -0
- package/lib/jsutils/isPromise.mjs.map +7 -0
- package/lib/jsutils/keyMap.js.map +7 -0
- package/lib/jsutils/keyMap.mjs.map +7 -0
- package/lib/jsutils/keyValMap.js.map +7 -0
- package/lib/jsutils/keyValMap.mjs.map +7 -0
- package/lib/jsutils/mapValue.js.map +7 -0
- package/lib/jsutils/mapValue.mjs.map +7 -0
- package/lib/jsutils/memoize3.js.map +7 -0
- package/lib/jsutils/memoize3.mjs.map +7 -0
- package/lib/jsutils/naturalCompare.js.map +7 -0
- package/lib/jsutils/naturalCompare.mjs.map +7 -0
- package/lib/jsutils/printPathArray.js.map +7 -0
- package/lib/jsutils/printPathArray.mjs.map +7 -0
- package/lib/jsutils/promiseForObject.js.map +7 -0
- package/lib/jsutils/promiseForObject.mjs.map +7 -0
- package/lib/jsutils/promiseReduce.js.map +7 -0
- package/lib/jsutils/promiseReduce.mjs.map +7 -0
- package/lib/jsutils/suggestionList.js.map +7 -0
- package/lib/jsutils/suggestionList.mjs.map +7 -0
- package/lib/jsutils/toObjMap.js.map +7 -0
- package/lib/jsutils/toObjMap.mjs.map +7 -0
- package/lib/subscribeWithSchema.js.map +7 -0
- package/lib/subscribeWithSchema.mjs.map +7 -0
- package/lib/subscribeWithoutSchema.d.ts +1 -1
- package/lib/subscribeWithoutSchema.d.ts.map +1 -1
- package/lib/subscribeWithoutSchema.js.map +7 -0
- package/lib/subscribeWithoutSchema.mjs.map +7 -0
- package/lib/types.d.ts +1 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +7 -0
- package/lib/types.mjs.map +7 -0
- package/lib/utilities/array.js.map +7 -0
- package/lib/utilities/array.mjs.map +7 -0
- package/lib/utilities/blankGraphQLTag.js.map +7 -0
- package/lib/utilities/blankGraphQLTag.mjs.map +7 -0
- package/lib/utilities/mapAsyncIterator.js.map +7 -0
- package/lib/utilities/mapAsyncIterator.mjs.map +7 -0
- package/lib/utilities/mergeResolvers.d.ts.map +1 -1
- package/lib/utilities/mergeResolvers.js +2 -1
- package/lib/utilities/mergeResolvers.js.map +7 -0
- package/lib/utilities/mergeResolvers.mjs +2 -1
- package/lib/utilities/mergeResolvers.mjs.map +7 -0
- package/lib/utilities/typeNameFromAST.d.ts +1 -1
- package/lib/utilities/typeNameFromAST.d.ts.map +1 -1
- package/lib/utilities/typeNameFromAST.js.map +7 -0
- package/lib/utilities/typeNameFromAST.mjs.map +7 -0
- package/lib/values.d.ts +1 -1
- package/lib/values.d.ts.map +1 -1
- package/lib/values.js.map +7 -0
- package/lib/values.mjs.map +7 -0
- package/package.json +7 -3
- package/lib/ast/TypedAST.d.ts +0 -367
- package/lib/ast/TypedAST.d.ts.map +0 -1
- package/lib/ast/TypedAST.js +0 -16
- package/lib/ast/TypedAST.mjs +0 -0
- package/lib/ast/addTypesToRequestDocument.d.ts +0 -6
- package/lib/ast/addTypesToRequestDocument.d.ts.map +0 -1
- package/lib/ast/addTypesToRequestDocument.js +0 -161
- package/lib/ast/addTypesToRequestDocument.mjs +0 -153
- package/lib/transforms/annotateDocumentGraphQLTransform.d.ts +0 -3
- package/lib/transforms/annotateDocumentGraphQLTransform.d.ts.map +0 -1
- package/lib/transforms/annotateDocumentGraphQLTransform.js +0 -34
- package/lib/transforms/annotateDocumentGraphQLTransform.mjs +0 -17
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/executeWithoutSchema.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n ASTNode as GraphQLASTNode,\n GraphQLEnumType,\n GraphQLError,\n GraphQLInputObjectType,\n GraphQLLeafType,\n GraphQLScalarType,\n isLeafType,\n Kind,\n locatedError,\n} from \"graphql\";\n\nimport {\n DocumentNode,\n FieldNode,\n FragmentDefinitionNode,\n OperationDefinitionNode,\n OperationTypeDefinitionNode,\n TypeNode,\n} from \"@graphitation/supermassive-ast\";\nimport { collectFields } from \"./collectFields\";\nimport { devAssert } from \"./jsutils/devAssert\";\nimport { inspect } from \"./jsutils/inspect\";\nimport { invariant } from \"./jsutils/invariant\";\nimport { isIterableObject } from \"./jsutils/isIterableObject\";\nimport { isObjectLike } from \"./jsutils/isObjectLike\";\nimport { isPromise } from \"./jsutils/isPromise\";\nimport type { Maybe } from \"./jsutils/Maybe\";\nimport type { ObjMap } from \"./jsutils/ObjMap\";\nimport type { Path } from \"./jsutils/Path\";\nimport { addPath, pathToArray } from \"./jsutils/Path\";\nimport { promiseForObject } from \"./jsutils/promiseForObject\";\nimport type { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { promiseReduce } from \"./jsutils/promiseReduce\";\nimport { isUnionResolverType, isInterfaceResolverType } from \"./definition\";\nimport { mergeResolvers } from \"./utilities/mergeResolvers\";\nimport {\n ExecutionWithoutSchemaArgs,\n FunctionFieldResolver,\n InterfaceTypeResolver,\n ObjectTypeResolver,\n ResolveInfo,\n Resolver,\n Resolvers,\n TypeResolver,\n UnionTypeResolver,\n ExecutionResult,\n} from \"./types\";\nimport { typeNameFromAST } from \"./utilities/typeNameFromAST\";\nimport {\n getArgumentValues,\n getVariableValues,\n specifiedScalars,\n} from \"./values\";\nimport { ExecutionHooks } from \"./hooks/types\";\nimport { arraysAreEqual } from \"./utilities/array\";\n\n/**\n * Terminology\n *\n * \"Definitions\" are the generic name for top-level statements in the document.\n * Examples of this include:\n * 1) Operations (such as a query)\n * 2) Fragments\n *\n * \"Operations\" are a generic name for requests in the document.\n * Examples of this include:\n * 1) query,\n * 2) mutation\n *\n * \"Selections\" are the definitions that can appear legally and at\n * single level of the query. These include:\n * 1) field references e.g \"a\"\n * 2) fragment \"spreads\" e.g. \"...c\"\n * 3) inline fragment \"spreads\" e.g. \"...on Type { a }\"\n */\n\n/**\n * Data that must be available at all points during query execution.\n *\n * Namely, schema of the type system that is currently executing,\n * and the fragments defined in the query document\n */\nexport interface ExecutionContext {\n resolvers: Resolvers;\n fragments: ObjMap<FragmentDefinitionNode>;\n rootValue: unknown;\n contextValue: unknown;\n operation: OperationDefinitionNode;\n variableValues: { [variable: string]: unknown };\n fieldResolver: FunctionFieldResolver<unknown, unknown>;\n typeResolver: TypeResolver<unknown, unknown>;\n errors: Array<GraphQLError>;\n fieldExecutionHooks?: ExecutionHooks;\n}\n\n/**\n * Implements the \"Executing requests\" section of the GraphQL specification.\n *\n * Returns either a synchronous ExecutionResult (if all encountered resolvers\n * are synchronous), or a Promise of an ExecutionResult that will eventually be\n * resolved and never rejected.\n *\n * If the arguments to this function do not result in a legal execution context,\n * a GraphQLError will be thrown immediately explaining the invalid input.\n */\nexport function executeWithoutSchema(\n args: ExecutionWithoutSchemaArgs,\n): PromiseOrValue<ExecutionResult> {\n const {\n resolvers,\n schemaResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n } = args;\n\n const combinedResolvers = schemaResolvers\n ? mergeResolvers(resolvers, schemaResolvers)\n : (resolvers as Resolvers);\n // If arguments are missing or incorrect, throw an error.\n assertValidExecutionArguments(document, variableValues);\n\n // If a valid execution context cannot be created due to incorrect arguments,\n // a \"Response\" with only errors is returned.\n const exeContext = buildExecutionContext(\n combinedResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n );\n\n // Return early errors if execution context failed.\n if (!(\"resolvers\" in exeContext)) {\n return { errors: exeContext };\n } else {\n // Return a Promise that will eventually resolve to the data described by\n // The \"Response\" section of the GraphQL specification.\n //\n // If errors are encountered while executing a GraphQL field, only that\n // field and its descendants will be omitted, and sibling fields will still\n // be executed. An execution which encounters errors will still result in a\n // resolved Promise.\n const data = executeOperation(exeContext, exeContext.operation, rootValue);\n return buildResponse(exeContext, data);\n }\n}\n\n/**\n * Given a completed execution context and data, build the { errors, data }\n * response defined by the \"Response\" section of the GraphQL specification.\n */\nfunction buildResponse(\n exeContext: ExecutionContext,\n data: PromiseOrValue<ObjMap<unknown> | null>,\n): PromiseOrValue<ExecutionResult> {\n if (isPromise(data)) {\n return data.then((resolved: PromiseOrValue<ObjMap<unknown> | null>) =>\n buildResponse(exeContext, resolved),\n );\n }\n return exeContext.errors.length === 0\n ? { data }\n : { errors: exeContext.errors, data };\n}\n\n/**\n * Essential assertions before executing to provide developer feedback for\n * improper use of the GraphQL library.\n *\n * @internal\n */\nexport function assertValidExecutionArguments(\n document: DocumentNode,\n rawVariableValues: Maybe<{ [variable: string]: unknown }>,\n): void {\n devAssert(document, \"Must provide document.\");\n\n // Variables, if provided, must be an object.\n devAssert(\n rawVariableValues == null || isObjectLike(rawVariableValues),\n \"Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.\",\n );\n}\n\n/**\n * Constructs a ExecutionContext object from the arguments passed to\n * execute, which we will pass throughout the other execution methods.\n *\n * Throws a GraphQLError if a valid execution context cannot be created.\n *\n * @internal\n */\nexport function buildExecutionContext(\n resolvers: Resolvers,\n document: DocumentNode,\n rootValue: unknown,\n contextValue: unknown,\n rawVariableValues: Maybe<{ [variable: string]: unknown }>,\n operationName: Maybe<string>,\n fieldResolver: Maybe<FunctionFieldResolver<unknown, unknown>>,\n typeResolver?: Maybe<TypeResolver<unknown, unknown>>,\n fieldExecutionHooks?: ExecutionHooks,\n): Array<GraphQLError> | ExecutionContext {\n let operation: OperationDefinitionNode | undefined;\n const fragments: ObjMap<FragmentDefinitionNode> = Object.create(null);\n for (const definition of document.definitions) {\n switch (definition.kind) {\n case Kind.OPERATION_DEFINITION:\n if (operationName == null) {\n if (operation !== undefined) {\n return [\n new GraphQLError(\n \"Must provide operation name if query contains multiple operations.\",\n ),\n ];\n }\n operation = definition;\n } else if (definition.name?.value === operationName) {\n operation = definition;\n }\n break;\n case Kind.FRAGMENT_DEFINITION:\n fragments[definition.name.value] = definition;\n break;\n }\n }\n\n if (!operation) {\n if (operationName != null) {\n return [new GraphQLError(`Unknown operation named \"${operationName}\".`)];\n }\n return [new GraphQLError(\"Must provide an operation.\")];\n }\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const variableDefinitions = operation.variableDefinitions ?? [];\n\n const coercedVariableValues = getVariableValues(\n resolvers,\n variableDefinitions,\n rawVariableValues ?? {},\n { maxErrors: 50 },\n );\n\n if (coercedVariableValues.errors) {\n return coercedVariableValues.errors;\n }\n\n return {\n resolvers,\n fragments,\n rootValue,\n contextValue,\n operation,\n variableValues: coercedVariableValues.coerced,\n fieldResolver: fieldResolver ?? defaultFieldResolver,\n typeResolver: typeResolver ?? defaultTypeResolver,\n errors: [],\n fieldExecutionHooks,\n };\n}\n\n/**\n * Implements the \"Executing operations\" section of the spec.\n */\nfunction executeOperation(\n exeContext: ExecutionContext,\n operation: OperationDefinitionNode,\n rootValue: unknown,\n): PromiseOrValue<ObjMap<unknown> | null> {\n const typeName = getOperationRootTypeName(operation);\n const fields = collectFields(\n exeContext.resolvers,\n exeContext.fragments,\n exeContext.variableValues,\n typeName,\n operation.selectionSet,\n new Map(),\n new Set(),\n );\n\n const path = undefined;\n\n // Errors from sub-fields of a NonNull type may propagate to the top level,\n // at which point we still log the error and null the parent field, which\n // in this case is the entire response.\n try {\n const result =\n operation.operation === \"mutation\"\n ? executeFieldsSerially(exeContext, typeName, rootValue, path, fields)\n : executeFields(exeContext, typeName, rootValue, path, fields);\n if (isPromise(result)) {\n return result.then(undefined, (error: GraphQLError) => {\n exeContext.errors.push(error);\n return Promise.resolve(null);\n });\n }\n return result;\n } catch (error) {\n exeContext.errors.push(error as GraphQLError);\n return null;\n }\n}\n\n/**\n * Implements the \"Executing selection sets\" section of the spec\n * for fields that must be executed serially.\n */\nfunction executeFieldsSerially(\n exeContext: ExecutionContext,\n parentTypeName: string,\n sourceValue: unknown,\n path: Path | undefined,\n fields: Map<string, Array<FieldNode>>,\n): PromiseOrValue<ObjMap<unknown>> {\n return promiseReduce(\n fields.entries(),\n (results, [responseName, fieldNodes]) => {\n const fieldPath = addPath(path, responseName, parentTypeName);\n const result = executeField(\n exeContext,\n parentTypeName,\n sourceValue,\n fieldNodes,\n fieldPath,\n );\n if (result === undefined) {\n return results;\n }\n if (isPromise(result)) {\n return result.then((resolvedResult: unknown) => {\n results[responseName] = resolvedResult;\n return results;\n });\n }\n results[responseName] = result;\n return results;\n },\n Object.create(null),\n );\n}\n\n/**\n * Implements the \"Executing selection sets\" section of the spec\n * for fields that may be executed in parallel.\n */\nfunction executeFields(\n exeContext: ExecutionContext,\n parentTypeName: string,\n sourceValue: unknown,\n path: Path | undefined,\n fields: Map<string, Array<FieldNode>>,\n): PromiseOrValue<ObjMap<unknown>> {\n const results = Object.create(null);\n let containsPromise = false;\n\n for (const [responseName, fieldNodes] of fields.entries()) {\n const fieldPath = addPath(path, responseName, parentTypeName);\n const result = executeField(\n exeContext,\n parentTypeName,\n sourceValue,\n fieldNodes,\n fieldPath,\n );\n\n if (result !== undefined) {\n results[responseName] = result;\n if (isPromise(result)) {\n containsPromise = true;\n }\n }\n }\n\n // If there are no promises, we can just return the object\n if (!containsPromise) {\n return results;\n }\n\n // Otherwise, results is a map from field name to the result of resolving that\n // field, which is possibly a promise. Return a promise that will return this\n // same map, but with any promises replaced with the values they resolved to.\n return promiseForObject(results);\n}\n\n/**\n * Implements the \"Executing field\" section of the spec\n * In particular, this function figures out the value that the field returns by\n * calling its resolve function, then calls completeValue to complete promises,\n * serialize scalars, or execute the sub-selection-set for objects.\n */\nfunction executeField(\n exeContext: ExecutionContext,\n parentTypeName: string,\n source: unknown,\n fieldNodes: Array<FieldNode>,\n path: Path,\n): PromiseOrValue<unknown> {\n const fieldName = fieldNodes[0].name.value;\n const hooks = exeContext.fieldExecutionHooks;\n\n let resolveFn;\n let returnTypeName: string;\n let returnTypeNode: TypeNode;\n if (fieldName === \"__typename\" && !resolveFn) {\n resolveFn = () => parentTypeName;\n returnTypeName = \"String\";\n returnTypeNode = {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: \"String\",\n },\n };\n } else {\n returnTypeNode = fieldNodes[0].__type;\n returnTypeName = typeNameFromAST(returnTypeNode);\n const typeResolvers = exeContext.resolvers[parentTypeName];\n resolveFn = (\n typeResolvers as ObjectTypeResolver<unknown, unknown, unknown> | undefined\n )?.[fieldName];\n\n if (typeof resolveFn !== \"function\" && resolveFn != null) {\n resolveFn = resolveFn.resolve;\n }\n }\n\n const isDefaultResolverUsed = !resolveFn;\n if (!resolveFn) {\n resolveFn = exeContext.fieldResolver;\n }\n\n const info = buildResolveInfo(\n exeContext,\n fieldName,\n fieldNodes,\n parentTypeName,\n returnTypeName,\n returnTypeNode,\n path,\n );\n\n // Get the resolve function, regardless of if its result is normal or abrupt (error).\n try {\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill any variable references.\n // TODO: find a way to memoize, in case this field is within a List type.\n const args = getArgumentValues(\n exeContext.resolvers,\n fieldNodes[0],\n exeContext.variableValues,\n );\n\n if (!isDefaultResolverUsed && hooks?.beforeFieldResolve) {\n invokeBeforeFieldResolveHook(info, exeContext);\n }\n\n // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n const contextValue = exeContext.contextValue;\n\n const result = resolveFn(source, args, contextValue, info);\n\n let completed;\n if (isPromise(result)) {\n completed = result.then(\n (resolved) => {\n if (!isDefaultResolverUsed && hooks?.afterFieldResolve) {\n invokeAfterFieldResolveHook(info, exeContext, resolved);\n }\n return completeValue(\n exeContext,\n returnTypeNode,\n fieldNodes,\n info,\n path,\n resolved,\n );\n },\n (rawError) => {\n // That's where afterResolve hook can only be called\n // in the case of async resolver promise rejection.\n if (!isDefaultResolverUsed && hooks?.afterFieldResolve) {\n invokeAfterFieldResolveHook(info, exeContext, undefined, rawError);\n }\n // Error will be handled on field completion\n throw rawError;\n },\n );\n } else {\n if (!isDefaultResolverUsed && hooks?.afterFieldResolve) {\n invokeAfterFieldResolveHook(info, exeContext, result);\n }\n completed = completeValue(\n exeContext,\n returnTypeNode,\n fieldNodes,\n info,\n path,\n result,\n );\n }\n\n if (isPromise(completed)) {\n // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n // to take a second callback for the error case.\n return completed.then(\n (resolved) => {\n if (!isDefaultResolverUsed && hooks?.afterFieldComplete) {\n invokeAfterFieldCompleteHook(info, exeContext, resolved);\n }\n return resolved;\n },\n (rawError) => {\n const error = locatedError(\n rawError,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathToArray(path),\n );\n if (!isDefaultResolverUsed && hooks?.afterFieldComplete) {\n invokeAfterFieldCompleteHook(info, exeContext, undefined, error);\n }\n return handleFieldError(error, returnTypeNode, exeContext);\n },\n );\n }\n if (!isDefaultResolverUsed && hooks?.afterFieldComplete) {\n invokeAfterFieldCompleteHook(info, exeContext, completed);\n }\n return completed;\n } catch (rawError) {\n const pathArray = pathToArray(path);\n const error = locatedError(\n rawError,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathArray,\n );\n // Do not invoke afterFieldResolve hook when error path and current field path are not equal:\n // it means that field itself resolved fine (so afterFieldResolve has been invoked already),\n // but non-nullable child field resolving throws an error,\n // so that error is propagated to the parent field according to spec\n if (\n !isDefaultResolverUsed &&\n hooks?.afterFieldResolve &&\n error.path &&\n arraysAreEqual(pathArray, error.path)\n ) {\n invokeAfterFieldResolveHook(info, exeContext, undefined, error);\n }\n if (!isDefaultResolverUsed && hooks?.afterFieldComplete) {\n invokeAfterFieldCompleteHook(info, exeContext, undefined, error);\n }\n return handleFieldError(error, returnTypeNode, exeContext);\n }\n}\n\n/**\n * @internal\n */\nexport function buildResolveInfo(\n exeContext: ExecutionContext,\n fieldName: string,\n fieldNodes: Array<FieldNode>,\n parentTypeName: string,\n returnTypeName: string,\n returnTypeNode: TypeNode,\n path: Path,\n): ResolveInfo {\n // The resolve function's optional fourth argument is a collection of\n // information about the current execution state.\n return {\n fieldName: fieldName,\n fieldNodes,\n returnTypeName,\n parentTypeName,\n returnTypeNode,\n path,\n fragments: exeContext.fragments,\n rootValue: exeContext.rootValue,\n operation: exeContext.operation,\n variableValues: exeContext.variableValues,\n };\n}\n\nfunction handleFieldError(\n error: GraphQLError,\n returnTypeNode: TypeNode,\n exeContext: ExecutionContext,\n): null {\n // If the field type is non-nullable, then it is resolved without any\n // protection from errors, however it still properly locates the error.\n if (returnTypeNode.kind === Kind.NON_NULL_TYPE) {\n throw error;\n }\n\n // Otherwise, error protection is applied, logging the error and resolving\n // a null value for this field if one is encountered.\n exeContext.errors.push(error);\n return null;\n}\n\n/**\n * Implements the instructions for completeValue as defined in the\n * \"Field entries\" section of the spec.\n *\n * If the field type is Non-Null, then this recursively completes the value\n * for the inner type. It throws a field error if that completion returns null,\n * as per the \"Nullability\" section of the spec.\n *\n * If the field type is a List, then this recursively completes the value\n * for the inner type on each item in the list.\n *\n * If the field type is a Scalar or Enum, ensures the completed value is a legal\n * value of the type by calling the `serialize` method of GraphQL type\n * definition.\n *\n * If the field is an abstract type, determine the runtime type of the value\n * and then complete based on that type\n *\n * Otherwise, the field type expects a sub-selection set, and will complete the\n * value by executing all sub-selections.\n */\nfunction completeValue(\n exeContext: ExecutionContext,\n returnTypeNode: TypeNode,\n fieldNodes: Array<FieldNode>,\n info: ResolveInfo,\n path: Path,\n result: unknown,\n): PromiseOrValue<unknown> {\n // If result is an Error, throw a located error.\n if (result instanceof Error) {\n throw result;\n }\n\n // If field type is NonNull, complete for inner type, and throw field error\n // if result is null.\n if (returnTypeNode.kind === Kind.NON_NULL_TYPE) {\n const completed = completeValue(\n exeContext,\n returnTypeNode.type,\n fieldNodes,\n info,\n path,\n result,\n );\n if (completed === null) {\n throw new Error(\n `Cannot return null for non-nullable field ${info.parentTypeName}.${info.fieldName}.`,\n );\n }\n return completed;\n }\n\n // If result value is null or undefined then return null.\n if (result == null) {\n return null;\n }\n\n // If field type is List, complete each item in the list with the inner type\n if (returnTypeNode.kind === Kind.LIST_TYPE) {\n return completeListValue(\n exeContext,\n returnTypeNode.type,\n fieldNodes,\n info,\n path,\n result,\n );\n }\n\n const returnTypeName = returnTypeNode.name.value;\n let returnType: Resolver<unknown, unknown> =\n exeContext.resolvers[returnTypeName];\n if (!returnType) {\n returnType = specifiedScalars[returnTypeName];\n }\n\n // If field type is a leaf type, Scalar or Enum, serialize to a valid value,\n // returning null if serialization is not possible.\n if (isLeafType(returnType)) {\n return completeLeafValue(returnType, result);\n }\n\n if (returnType instanceof GraphQLInputObjectType) {\n // todo\n }\n\n // If field type is an abstract type, Interface or Union, determine the\n // runtime Object type and complete for that type.\n if (isUnionResolverType(returnType) || isInterfaceResolverType(returnType)) {\n return completeAbstractValue(\n exeContext,\n returnType,\n fieldNodes,\n info,\n path,\n result,\n );\n }\n\n // If field type is Object, execute and complete all sub-selections.\n // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n if (typeof returnType === \"object\") {\n return completeObjectValue(\n exeContext,\n returnTypeName,\n fieldNodes,\n info,\n path,\n result,\n );\n }\n\n // istanbul ignore next (Not reachable. All possible output types have been considered)\n invariant(\n false,\n \"Cannot complete value of unexpected output type: \" + inspect(returnType),\n );\n}\n\n/**\n * Complete a list value by completing each item in the list with the\n * inner type\n */\nfunction completeListValue(\n exeContext: ExecutionContext,\n returnTypeNode: TypeNode,\n fieldNodes: Array<FieldNode>,\n info: ResolveInfo,\n path: Path,\n result: unknown,\n): PromiseOrValue<Array<unknown>> {\n if (!isIterableObject(result)) {\n throw new GraphQLError(\n `Expected Iterable, but did not find one for field \"${info.parentTypeName}.${info.fieldName}\".`,\n );\n }\n\n // This is specified as a simple map, however we're optimizing the path\n // where the list contains no Promises by avoiding creating another Promise.\n let containsPromise = false;\n const completedResults = Array.from(result, (item, index) => {\n // No need to modify the info object containing the path,\n // since from here on it is not ever accessed by resolver functions.\n const itemPath = addPath(path, index, undefined);\n try {\n let completedItem;\n if (isPromise(item)) {\n completedItem = item.then((resolved) =>\n completeValue(\n exeContext,\n returnTypeNode,\n fieldNodes,\n info,\n itemPath,\n resolved,\n ),\n );\n } else {\n completedItem = completeValue(\n exeContext,\n returnTypeNode,\n fieldNodes,\n info,\n itemPath,\n item,\n );\n }\n\n if (isPromise(completedItem)) {\n containsPromise = true;\n // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n // to take a second callback for the error case.\n return completedItem.then(undefined, (rawError) => {\n const error = locatedError(\n rawError,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathToArray(itemPath),\n );\n return handleFieldError(error, returnTypeNode, exeContext);\n });\n }\n return completedItem;\n } catch (rawError) {\n const error = locatedError(\n rawError,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathToArray(itemPath),\n );\n return handleFieldError(error, returnTypeNode, exeContext);\n }\n });\n\n return containsPromise ? Promise.all(completedResults) : completedResults;\n}\n\n/**\n * Complete a Scalar or Enum by serializing to a valid value, returning\n * null if serialization is not possible.\n */\nfunction completeLeafValue(\n returnType: GraphQLLeafType,\n result: unknown,\n): unknown {\n const serializedResult = returnType.serialize(result);\n if (serializedResult === undefined) {\n throw new Error(\n `Expected a value of type \"${inspect(returnType)}\" but ` +\n `received: ${inspect(result)}`,\n );\n }\n return serializedResult;\n}\n\n/**\n * Complete a value of an abstract type by determining the runtime object type\n * of that value, then complete the value for that type.\n */\nfunction completeAbstractValue(\n exeContext: ExecutionContext,\n returnType: UnionTypeResolver | InterfaceTypeResolver,\n fieldNodes: Array<FieldNode>,\n info: ResolveInfo,\n path: Path,\n result: unknown,\n): PromiseOrValue<ObjMap<unknown>> {\n const resolveTypeFn = returnType.__resolveType ?? exeContext.typeResolver;\n const contextValue = exeContext.contextValue;\n const runtimeTypeName = resolveTypeFn(result, contextValue, info);\n\n if (isPromise(runtimeTypeName)) {\n return runtimeTypeName.then((resolvedRuntimeTypeName) =>\n completeObjectValue(\n exeContext,\n ensureValidRuntimeType(resolvedRuntimeTypeName, exeContext),\n fieldNodes,\n info,\n path,\n result,\n ),\n );\n }\n\n return completeObjectValue(\n exeContext,\n ensureValidRuntimeType(runtimeTypeName, exeContext),\n fieldNodes,\n info,\n path,\n result,\n );\n}\n\nfunction ensureValidRuntimeType(\n runtimeTypeName: unknown,\n exeContext: ExecutionContext,\n): string {\n if (typeof runtimeTypeName !== \"string\") {\n throw new GraphQLError(\n `Could not determine runtime type for abstract type ${runtimeTypeName}`,\n );\n }\n\n const runtimeType: Resolver<unknown, unknown> =\n exeContext.resolvers[runtimeTypeName];\n\n if (!runtimeType) {\n throw new GraphQLError(\n `Type \"${runtimeTypeName}\" does not exist inside the schema.`,\n );\n } else if (\n runtimeType instanceof GraphQLScalarType ||\n runtimeType instanceof GraphQLEnumType ||\n runtimeType instanceof GraphQLInputObjectType ||\n runtimeType.__resolveType\n ) {\n throw new GraphQLError(\n `Given runtime object \"${getRuntimeTypeInstanceName(\n runtimeType,\n )}\" type is not a possible type for \"${runtimeTypeName}\".`,\n );\n } else {\n return runtimeTypeName;\n }\n}\n\nfunction getRuntimeTypeInstanceName(\n runtimeType: Resolver<unknown, unknown>,\n): string {\n if (runtimeType instanceof GraphQLScalarType) {\n return \"GraphQLScalarType\";\n } else if (runtimeType instanceof GraphQLEnumType) {\n return \"GraphQLEnumType\";\n } else if (runtimeType instanceof GraphQLInputObjectType) {\n return \"GraphQLInputObjectType\";\n } else if (\"__types\" in runtimeType) {\n return \"GraphQLUnionType\";\n } else if (\"__implementedBy\" in runtimeType) {\n return \"GraphQLInterfaceType\";\n } else {\n return \"Unknown\";\n }\n}\n\n/**\n * Complete an Object value by executing all sub-selections.\n */\nfunction completeObjectValue(\n exeContext: ExecutionContext,\n returnTypeName: string,\n fieldNodes: Array<FieldNode>,\n _info: ResolveInfo,\n path: Path,\n result: unknown,\n): PromiseOrValue<ObjMap<unknown>> {\n // Collect sub-fields to execute to complete this value.\n const subFieldNodes = collectSubfields(\n exeContext,\n returnTypeName,\n fieldNodes,\n );\n return executeFields(exeContext, returnTypeName, result, path, subFieldNodes);\n}\n\n/**\n * A memoized collection of relevant subfields with regard to the return\n * type. Memoizing ensures the subfields are not repeatedly calculated, which\n * saves overhead when resolving lists of values.\n */\n// TODO: memoize const collectSubfields = memoize3(_collectSubfields);\nfunction collectSubfields(\n exeContext: ExecutionContext,\n returnTypeName: string,\n fieldNodes: Array<FieldNode>,\n): Map<string, Array<FieldNode>> {\n let subFieldNodes = new Map();\n const visitedFragmentNames = new Set<string>();\n for (const node of fieldNodes) {\n if (node.selectionSet) {\n subFieldNodes = collectFields(\n exeContext.resolvers,\n exeContext.fragments,\n exeContext.variableValues,\n returnTypeName,\n node.selectionSet,\n subFieldNodes,\n visitedFragmentNames,\n );\n }\n }\n return subFieldNodes;\n}\n\nfunction invokeBeforeFieldResolveHook(\n resolveInfo: ResolveInfo,\n exeContext: ExecutionContext,\n): void {\n const hook = exeContext.fieldExecutionHooks?.beforeFieldResolve;\n if (!hook) {\n return;\n }\n executeSafe(\n () =>\n hook({\n resolveInfo,\n context: exeContext.contextValue,\n }),\n (_, rawError) => {\n if (rawError) {\n const error = toGraphQLError(\n rawError,\n resolveInfo.path,\n \"Unexpected error in beforeFieldResolve hook\",\n );\n exeContext.errors.push(error);\n }\n },\n );\n}\n\nfunction invokeAfterFieldResolveHook(\n resolveInfo: ResolveInfo,\n exeContext: ExecutionContext,\n result?: unknown,\n error?: unknown,\n): void {\n const hook = exeContext.fieldExecutionHooks?.afterFieldResolve;\n if (!hook) {\n return;\n }\n executeSafe(\n () =>\n hook({\n resolveInfo,\n context: exeContext.contextValue,\n result,\n error,\n }),\n (_, rawError) => {\n if (rawError) {\n const error = toGraphQLError(\n rawError,\n resolveInfo.path,\n \"Unexpected error in afterFieldResolve hook\",\n );\n exeContext.errors.push(error);\n }\n },\n );\n}\n\nfunction invokeAfterFieldCompleteHook(\n resolveInfo: ResolveInfo,\n exeContext: ExecutionContext,\n result?: unknown,\n error?: unknown,\n): void {\n const hook = exeContext.fieldExecutionHooks?.afterFieldComplete;\n if (!hook) {\n return;\n }\n executeSafe(\n () =>\n hook({\n resolveInfo,\n context: exeContext.contextValue,\n result,\n error,\n }),\n (_, rawError) => {\n if (rawError) {\n const error = toGraphQLError(\n rawError,\n resolveInfo.path,\n \"Unexpected error in afterFieldComplete hook\",\n );\n exeContext.errors.push(error);\n }\n },\n );\n}\n\nfunction executeSafe<T>(\n execute: () => T,\n onComplete: (result: T | undefined, error: unknown) => void,\n): T {\n let error: unknown;\n let result: T | undefined;\n try {\n result = execute();\n } catch (e) {\n error = e;\n } finally {\n onComplete(result, error);\n }\n return result as T;\n}\n\nfunction toGraphQLError(\n originalError: unknown,\n path: Path,\n prependMessage: string,\n): GraphQLError {\n const originalMessage =\n originalError instanceof Error\n ? originalError.message\n : inspect(originalError);\n const error = new Error(`${prependMessage}: ${originalMessage}`);\n return locatedError(error, undefined, pathToArray(path));\n}\n\n/**\n * If a resolveType function is not given, then a default resolve behavior is\n * used which attempts two strategies:\n *\n * First, See if the provided value has a `__typename` field defined, if so, use\n * that value as name of the resolved type.\n *\n * Otherwise, test each possible type for the abstract type by calling\n * isTypeOf for the object being coerced, returning the first type that matches.\n */\nexport const defaultTypeResolver: TypeResolver<unknown, unknown> = function (\n value,\n) {\n if (isObjectLike(value) && typeof value.__typename === \"string\") {\n return value.__typename;\n }\n};\n\n/**\n * If a resolve function is not given, then a default resolve behavior is used\n * which takes the property of the source object of the same name as the field\n * and returns it as the result, or if it's a function, returns the result\n * of calling that function while passing along args and context value.\n */\nexport const defaultFieldResolver: FunctionFieldResolver<unknown, unknown> =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function (source: any, args, contextValue, info) {\n // ensure source is a value for which property access is acceptable.\n if (isObjectLike(source) || typeof source === \"function\") {\n const property = source[info.fieldName];\n if (typeof property === \"function\") {\n return source[info.fieldName](args, contextValue, info);\n }\n return property;\n }\n };\n\n// TODO(freiksenet): Custom root type names maybe?\nexport function getOperationRootTypeName(\n operation: OperationDefinitionNode | OperationTypeDefinitionNode,\n): string {\n switch (operation.operation) {\n case \"query\":\n return \"Query\";\n case \"mutation\":\n return \"Mutation\";\n case \"subscription\":\n return \"Subscription\";\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["error"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/executeWithoutSchema.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n ASTNode as GraphQLASTNode,\n GraphQLEnumType,\n GraphQLError,\n GraphQLInputObjectType,\n GraphQLLeafType,\n GraphQLScalarType,\n isLeafType,\n Kind,\n locatedError,\n} from \"graphql\";\n\nimport {\n DocumentNode,\n FieldNode,\n FragmentDefinitionNode,\n OperationDefinitionNode,\n OperationTypeDefinitionNode,\n TypeNode,\n} from \"@graphitation/supermassive-ast\";\nimport { collectFields } from \"./collectFields\";\nimport { devAssert } from \"./jsutils/devAssert\";\nimport { inspect } from \"./jsutils/inspect\";\nimport { invariant } from \"./jsutils/invariant\";\nimport { isIterableObject } from \"./jsutils/isIterableObject\";\nimport { isObjectLike } from \"./jsutils/isObjectLike\";\nimport { isPromise } from \"./jsutils/isPromise\";\nimport type { Maybe } from \"./jsutils/Maybe\";\nimport type { ObjMap } from \"./jsutils/ObjMap\";\nimport type { Path } from \"./jsutils/Path\";\nimport { addPath, pathToArray } from \"./jsutils/Path\";\nimport { promiseForObject } from \"./jsutils/promiseForObject\";\nimport type { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { promiseReduce } from \"./jsutils/promiseReduce\";\nimport { isUnionResolverType, isInterfaceResolverType } from \"./definition\";\nimport { mergeResolvers } from \"./utilities/mergeResolvers\";\nimport {\n ExecutionWithoutSchemaArgs,\n FunctionFieldResolver,\n InterfaceTypeResolver,\n ObjectTypeResolver,\n ResolveInfo,\n Resolver,\n Resolvers,\n TypeResolver,\n UnionTypeResolver,\n ExecutionResult,\n} from \"./types\";\nimport { typeNameFromAST } from \"./utilities/typeNameFromAST\";\nimport {\n getArgumentValues,\n getVariableValues,\n specifiedScalars,\n} from \"./values\";\nimport { ExecutionHooks } from \"./hooks/types\";\nimport { arraysAreEqual } from \"./utilities/array\";\n\n/**\n * Terminology\n *\n * \"Definitions\" are the generic name for top-level statements in the document.\n * Examples of this include:\n * 1) Operations (such as a query)\n * 2) Fragments\n *\n * \"Operations\" are a generic name for requests in the document.\n * Examples of this include:\n * 1) query,\n * 2) mutation\n *\n * \"Selections\" are the definitions that can appear legally and at\n * single level of the query. These include:\n * 1) field references e.g \"a\"\n * 2) fragment \"spreads\" e.g. \"...c\"\n * 3) inline fragment \"spreads\" e.g. \"...on Type { a }\"\n */\n\n/**\n * Data that must be available at all points during query execution.\n *\n * Namely, schema of the type system that is currently executing,\n * and the fragments defined in the query document\n */\nexport interface ExecutionContext {\n resolvers: Resolvers;\n fragments: ObjMap<FragmentDefinitionNode>;\n rootValue: unknown;\n contextValue: unknown;\n operation: OperationDefinitionNode;\n variableValues: { [variable: string]: unknown };\n fieldResolver: FunctionFieldResolver<unknown, unknown>;\n typeResolver: TypeResolver<unknown, unknown>;\n errors: Array<GraphQLError>;\n fieldExecutionHooks?: ExecutionHooks;\n}\n\n/**\n * Implements the \"Executing requests\" section of the GraphQL specification.\n *\n * Returns either a synchronous ExecutionResult (if all encountered resolvers\n * are synchronous), or a Promise of an ExecutionResult that will eventually be\n * resolved and never rejected.\n *\n * If the arguments to this function do not result in a legal execution context,\n * a GraphQLError will be thrown immediately explaining the invalid input.\n */\nexport function executeWithoutSchema(\n args: ExecutionWithoutSchemaArgs,\n): PromiseOrValue<ExecutionResult> {\n const {\n resolvers,\n schemaResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n } = args;\n\n const combinedResolvers = schemaResolvers\n ? mergeResolvers(resolvers, schemaResolvers)\n : (resolvers as Resolvers);\n // If arguments are missing or incorrect, throw an error.\n assertValidExecutionArguments(document, variableValues);\n\n // If a valid execution context cannot be created due to incorrect arguments,\n // a \"Response\" with only errors is returned.\n const exeContext = buildExecutionContext(\n combinedResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n );\n\n // Return early errors if execution context failed.\n if (!(\"resolvers\" in exeContext)) {\n return { errors: exeContext };\n } else {\n // Return a Promise that will eventually resolve to the data described by\n // The \"Response\" section of the GraphQL specification.\n //\n // If errors are encountered while executing a GraphQL field, only that\n // field and its descendants will be omitted, and sibling fields will still\n // be executed. An execution which encounters errors will still result in a\n // resolved Promise.\n const data = executeOperation(exeContext, exeContext.operation, rootValue);\n return buildResponse(exeContext, data);\n }\n}\n\n/**\n * Given a completed execution context and data, build the { errors, data }\n * response defined by the \"Response\" section of the GraphQL specification.\n */\nfunction buildResponse(\n exeContext: ExecutionContext,\n data: PromiseOrValue<ObjMap<unknown> | null>,\n): PromiseOrValue<ExecutionResult> {\n if (isPromise(data)) {\n return data.then((resolved: PromiseOrValue<ObjMap<unknown> | null>) =>\n buildResponse(exeContext, resolved),\n );\n }\n return exeContext.errors.length === 0\n ? { data }\n : { errors: exeContext.errors, data };\n}\n\n/**\n * Essential assertions before executing to provide developer feedback for\n * improper use of the GraphQL library.\n *\n * @internal\n */\nexport function assertValidExecutionArguments(\n document: DocumentNode,\n rawVariableValues: Maybe<{ [variable: string]: unknown }>,\n): void {\n devAssert(document, \"Must provide document.\");\n\n // Variables, if provided, must be an object.\n devAssert(\n rawVariableValues == null || isObjectLike(rawVariableValues),\n \"Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.\",\n );\n}\n\n/**\n * Constructs a ExecutionContext object from the arguments passed to\n * execute, which we will pass throughout the other execution methods.\n *\n * Throws a GraphQLError if a valid execution context cannot be created.\n *\n * @internal\n */\nexport function buildExecutionContext(\n resolvers: Resolvers,\n document: DocumentNode,\n rootValue: unknown,\n contextValue: unknown,\n rawVariableValues: Maybe<{ [variable: string]: unknown }>,\n operationName: Maybe<string>,\n fieldResolver: Maybe<FunctionFieldResolver<unknown, unknown>>,\n typeResolver?: Maybe<TypeResolver<unknown, unknown>>,\n fieldExecutionHooks?: ExecutionHooks,\n): Array<GraphQLError> | ExecutionContext {\n let operation: OperationDefinitionNode | undefined;\n const fragments: ObjMap<FragmentDefinitionNode> = Object.create(null);\n for (const definition of document.definitions) {\n switch (definition.kind) {\n case Kind.OPERATION_DEFINITION:\n if (operationName == null) {\n if (operation !== undefined) {\n return [\n new GraphQLError(\n \"Must provide operation name if query contains multiple operations.\",\n ),\n ];\n }\n operation = definition;\n } else if (definition.name?.value === operationName) {\n operation = definition;\n }\n break;\n case Kind.FRAGMENT_DEFINITION:\n fragments[definition.name.value] = definition;\n break;\n }\n }\n\n if (!operation) {\n if (operationName != null) {\n return [new GraphQLError(`Unknown operation named \"${operationName}\".`)];\n }\n return [new GraphQLError(\"Must provide an operation.\")];\n }\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const variableDefinitions = operation.variableDefinitions ?? [];\n\n const coercedVariableValues = getVariableValues(\n resolvers,\n variableDefinitions,\n rawVariableValues ?? {},\n { maxErrors: 50 },\n );\n\n if (coercedVariableValues.errors) {\n return coercedVariableValues.errors;\n }\n\n return {\n resolvers,\n fragments,\n rootValue,\n contextValue,\n operation,\n variableValues: coercedVariableValues.coerced,\n fieldResolver: fieldResolver ?? defaultFieldResolver,\n typeResolver: typeResolver ?? defaultTypeResolver,\n errors: [],\n fieldExecutionHooks,\n };\n}\n\n/**\n * Implements the \"Executing operations\" section of the spec.\n */\nfunction executeOperation(\n exeContext: ExecutionContext,\n operation: OperationDefinitionNode,\n rootValue: unknown,\n): PromiseOrValue<ObjMap<unknown> | null> {\n const typeName = getOperationRootTypeName(operation);\n const fields = collectFields(\n exeContext.resolvers,\n exeContext.fragments,\n exeContext.variableValues,\n typeName,\n operation.selectionSet,\n new Map(),\n new Set(),\n );\n\n const path = undefined;\n\n // Errors from sub-fields of a NonNull type may propagate to the top level,\n // at which point we still log the error and null the parent field, which\n // in this case is the entire response.\n try {\n const result =\n operation.operation === \"mutation\"\n ? executeFieldsSerially(exeContext, typeName, rootValue, path, fields)\n : executeFields(exeContext, typeName, rootValue, path, fields);\n if (isPromise(result)) {\n return result.then(undefined, (error: GraphQLError) => {\n exeContext.errors.push(error);\n return Promise.resolve(null);\n });\n }\n return result;\n } catch (error) {\n exeContext.errors.push(error as GraphQLError);\n return null;\n }\n}\n\n/**\n * Implements the \"Executing selection sets\" section of the spec\n * for fields that must be executed serially.\n */\nfunction executeFieldsSerially(\n exeContext: ExecutionContext,\n parentTypeName: string,\n sourceValue: unknown,\n path: Path | undefined,\n fields: Map<string, Array<FieldNode>>,\n): PromiseOrValue<ObjMap<unknown>> {\n return promiseReduce(\n fields.entries(),\n (results, [responseName, fieldNodes]) => {\n const fieldPath = addPath(path, responseName, parentTypeName);\n const result = executeField(\n exeContext,\n parentTypeName,\n sourceValue,\n fieldNodes,\n fieldPath,\n );\n if (result === undefined) {\n return results;\n }\n if (isPromise(result)) {\n return result.then((resolvedResult: unknown) => {\n results[responseName] = resolvedResult;\n return results;\n });\n }\n results[responseName] = result;\n return results;\n },\n Object.create(null),\n );\n}\n\n/**\n * Implements the \"Executing selection sets\" section of the spec\n * for fields that may be executed in parallel.\n */\nfunction executeFields(\n exeContext: ExecutionContext,\n parentTypeName: string,\n sourceValue: unknown,\n path: Path | undefined,\n fields: Map<string, Array<FieldNode>>,\n): PromiseOrValue<ObjMap<unknown>> {\n const results = Object.create(null);\n let containsPromise = false;\n\n for (const [responseName, fieldNodes] of fields.entries()) {\n const fieldPath = addPath(path, responseName, parentTypeName);\n const result = executeField(\n exeContext,\n parentTypeName,\n sourceValue,\n fieldNodes,\n fieldPath,\n );\n\n if (result !== undefined) {\n results[responseName] = result;\n if (isPromise(result)) {\n containsPromise = true;\n }\n }\n }\n\n // If there are no promises, we can just return the object\n if (!containsPromise) {\n return results;\n }\n\n // Otherwise, results is a map from field name to the result of resolving that\n // field, which is possibly a promise. Return a promise that will return this\n // same map, but with any promises replaced with the values they resolved to.\n return promiseForObject(results);\n}\n\n/**\n * Implements the \"Executing field\" section of the spec\n * In particular, this function figures out the value that the field returns by\n * calling its resolve function, then calls completeValue to complete promises,\n * serialize scalars, or execute the sub-selection-set for objects.\n */\nfunction executeField(\n exeContext: ExecutionContext,\n parentTypeName: string,\n source: unknown,\n fieldNodes: Array<FieldNode>,\n path: Path,\n): PromiseOrValue<unknown> {\n const fieldName = fieldNodes[0].name.value;\n const hooks = exeContext.fieldExecutionHooks;\n\n let resolveFn;\n let returnTypeName: string;\n let returnTypeNode: TypeNode;\n if (fieldName === \"__typename\" && !resolveFn) {\n resolveFn = () => parentTypeName;\n returnTypeName = \"String\";\n returnTypeNode = {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: \"String\",\n },\n };\n } else {\n returnTypeNode = fieldNodes[0].__type;\n returnTypeName = typeNameFromAST(returnTypeNode);\n const typeResolvers = exeContext.resolvers[parentTypeName];\n resolveFn = (\n typeResolvers as ObjectTypeResolver<unknown, unknown, unknown> | undefined\n )?.[fieldName];\n\n if (typeof resolveFn !== \"function\" && resolveFn != null) {\n resolveFn = resolveFn.resolve;\n }\n }\n\n const isDefaultResolverUsed = !resolveFn;\n if (!resolveFn) {\n resolveFn = exeContext.fieldResolver;\n }\n\n const info = buildResolveInfo(\n exeContext,\n fieldName,\n fieldNodes,\n parentTypeName,\n returnTypeName,\n returnTypeNode,\n path,\n );\n\n // Get the resolve function, regardless of if its result is normal or abrupt (error).\n try {\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill any variable references.\n // TODO: find a way to memoize, in case this field is within a List type.\n const args = getArgumentValues(\n exeContext.resolvers,\n fieldNodes[0],\n exeContext.variableValues,\n );\n\n if (!isDefaultResolverUsed && hooks?.beforeFieldResolve) {\n invokeBeforeFieldResolveHook(info, exeContext);\n }\n\n // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n const contextValue = exeContext.contextValue;\n\n const result = resolveFn(source, args, contextValue, info);\n\n let completed;\n if (isPromise(result)) {\n completed = result.then(\n (resolved) => {\n if (!isDefaultResolverUsed && hooks?.afterFieldResolve) {\n invokeAfterFieldResolveHook(info, exeContext, resolved);\n }\n return completeValue(\n exeContext,\n returnTypeNode,\n fieldNodes,\n info,\n path,\n resolved,\n );\n },\n (rawError) => {\n // That's where afterResolve hook can only be called\n // in the case of async resolver promise rejection.\n if (!isDefaultResolverUsed && hooks?.afterFieldResolve) {\n invokeAfterFieldResolveHook(info, exeContext, undefined, rawError);\n }\n // Error will be handled on field completion\n throw rawError;\n },\n );\n } else {\n if (!isDefaultResolverUsed && hooks?.afterFieldResolve) {\n invokeAfterFieldResolveHook(info, exeContext, result);\n }\n completed = completeValue(\n exeContext,\n returnTypeNode,\n fieldNodes,\n info,\n path,\n result,\n );\n }\n\n if (isPromise(completed)) {\n // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n // to take a second callback for the error case.\n return completed.then(\n (resolved) => {\n if (!isDefaultResolverUsed && hooks?.afterFieldComplete) {\n invokeAfterFieldCompleteHook(info, exeContext, resolved);\n }\n return resolved;\n },\n (rawError) => {\n const error = locatedError(\n rawError,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathToArray(path),\n );\n if (!isDefaultResolverUsed && hooks?.afterFieldComplete) {\n invokeAfterFieldCompleteHook(info, exeContext, undefined, error);\n }\n return handleFieldError(error, returnTypeNode, exeContext);\n },\n );\n }\n if (!isDefaultResolverUsed && hooks?.afterFieldComplete) {\n invokeAfterFieldCompleteHook(info, exeContext, completed);\n }\n return completed;\n } catch (rawError) {\n const pathArray = pathToArray(path);\n const error = locatedError(\n rawError,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathArray,\n );\n // Do not invoke afterFieldResolve hook when error path and current field path are not equal:\n // it means that field itself resolved fine (so afterFieldResolve has been invoked already),\n // but non-nullable child field resolving throws an error,\n // so that error is propagated to the parent field according to spec\n if (\n !isDefaultResolverUsed &&\n hooks?.afterFieldResolve &&\n error.path &&\n arraysAreEqual(pathArray, error.path)\n ) {\n invokeAfterFieldResolveHook(info, exeContext, undefined, error);\n }\n if (!isDefaultResolverUsed && hooks?.afterFieldComplete) {\n invokeAfterFieldCompleteHook(info, exeContext, undefined, error);\n }\n return handleFieldError(error, returnTypeNode, exeContext);\n }\n}\n\n/**\n * @internal\n */\nexport function buildResolveInfo(\n exeContext: ExecutionContext,\n fieldName: string,\n fieldNodes: Array<FieldNode>,\n parentTypeName: string,\n returnTypeName: string,\n returnTypeNode: TypeNode,\n path: Path,\n): ResolveInfo {\n // The resolve function's optional fourth argument is a collection of\n // information about the current execution state.\n return {\n fieldName: fieldName,\n fieldNodes,\n returnTypeName,\n parentTypeName,\n returnTypeNode,\n path,\n fragments: exeContext.fragments,\n rootValue: exeContext.rootValue,\n operation: exeContext.operation,\n variableValues: exeContext.variableValues,\n };\n}\n\nfunction handleFieldError(\n error: GraphQLError,\n returnTypeNode: TypeNode,\n exeContext: ExecutionContext,\n): null {\n // If the field type is non-nullable, then it is resolved without any\n // protection from errors, however it still properly locates the error.\n if (returnTypeNode.kind === Kind.NON_NULL_TYPE) {\n throw error;\n }\n\n // Otherwise, error protection is applied, logging the error and resolving\n // a null value for this field if one is encountered.\n exeContext.errors.push(error);\n return null;\n}\n\n/**\n * Implements the instructions for completeValue as defined in the\n * \"Field entries\" section of the spec.\n *\n * If the field type is Non-Null, then this recursively completes the value\n * for the inner type. It throws a field error if that completion returns null,\n * as per the \"Nullability\" section of the spec.\n *\n * If the field type is a List, then this recursively completes the value\n * for the inner type on each item in the list.\n *\n * If the field type is a Scalar or Enum, ensures the completed value is a legal\n * value of the type by calling the `serialize` method of GraphQL type\n * definition.\n *\n * If the field is an abstract type, determine the runtime type of the value\n * and then complete based on that type\n *\n * Otherwise, the field type expects a sub-selection set, and will complete the\n * value by executing all sub-selections.\n */\nfunction completeValue(\n exeContext: ExecutionContext,\n returnTypeNode: TypeNode,\n fieldNodes: Array<FieldNode>,\n info: ResolveInfo,\n path: Path,\n result: unknown,\n): PromiseOrValue<unknown> {\n // If result is an Error, throw a located error.\n if (result instanceof Error) {\n throw result;\n }\n\n // If field type is NonNull, complete for inner type, and throw field error\n // if result is null.\n if (returnTypeNode.kind === Kind.NON_NULL_TYPE) {\n const completed = completeValue(\n exeContext,\n returnTypeNode.type,\n fieldNodes,\n info,\n path,\n result,\n );\n if (completed === null) {\n throw new Error(\n `Cannot return null for non-nullable field ${info.parentTypeName}.${info.fieldName}.`,\n );\n }\n return completed;\n }\n\n // If result value is null or undefined then return null.\n if (result == null) {\n return null;\n }\n\n // If field type is List, complete each item in the list with the inner type\n if (returnTypeNode.kind === Kind.LIST_TYPE) {\n return completeListValue(\n exeContext,\n returnTypeNode.type,\n fieldNodes,\n info,\n path,\n result,\n );\n }\n\n const returnTypeName = returnTypeNode.name.value;\n let returnType: Resolver<unknown, unknown> =\n exeContext.resolvers[returnTypeName];\n if (!returnType) {\n returnType = specifiedScalars[returnTypeName];\n }\n\n // If field type is a leaf type, Scalar or Enum, serialize to a valid value,\n // returning null if serialization is not possible.\n if (isLeafType(returnType)) {\n return completeLeafValue(returnType, result);\n }\n\n if (returnType instanceof GraphQLInputObjectType) {\n // todo\n }\n\n // If field type is an abstract type, Interface or Union, determine the\n // runtime Object type and complete for that type.\n if (isUnionResolverType(returnType) || isInterfaceResolverType(returnType)) {\n return completeAbstractValue(\n exeContext,\n returnType,\n fieldNodes,\n info,\n path,\n result,\n );\n }\n\n // If field type is Object, execute and complete all sub-selections.\n // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n if (typeof returnType === \"object\") {\n return completeObjectValue(\n exeContext,\n returnTypeName,\n fieldNodes,\n info,\n path,\n result,\n );\n }\n\n // istanbul ignore next (Not reachable. All possible output types have been considered)\n invariant(\n false,\n \"Cannot complete value of unexpected output type: \" + inspect(returnType),\n );\n}\n\n/**\n * Complete a list value by completing each item in the list with the\n * inner type\n */\nfunction completeListValue(\n exeContext: ExecutionContext,\n returnTypeNode: TypeNode,\n fieldNodes: Array<FieldNode>,\n info: ResolveInfo,\n path: Path,\n result: unknown,\n): PromiseOrValue<Array<unknown>> {\n if (!isIterableObject(result)) {\n throw new GraphQLError(\n `Expected Iterable, but did not find one for field \"${info.parentTypeName}.${info.fieldName}\".`,\n );\n }\n\n // This is specified as a simple map, however we're optimizing the path\n // where the list contains no Promises by avoiding creating another Promise.\n let containsPromise = false;\n const completedResults = Array.from(result, (item, index) => {\n // No need to modify the info object containing the path,\n // since from here on it is not ever accessed by resolver functions.\n const itemPath = addPath(path, index, undefined);\n try {\n let completedItem;\n if (isPromise(item)) {\n completedItem = item.then((resolved) =>\n completeValue(\n exeContext,\n returnTypeNode,\n fieldNodes,\n info,\n itemPath,\n resolved,\n ),\n );\n } else {\n completedItem = completeValue(\n exeContext,\n returnTypeNode,\n fieldNodes,\n info,\n itemPath,\n item,\n );\n }\n\n if (isPromise(completedItem)) {\n containsPromise = true;\n // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n // to take a second callback for the error case.\n return completedItem.then(undefined, (rawError) => {\n const error = locatedError(\n rawError,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathToArray(itemPath),\n );\n return handleFieldError(error, returnTypeNode, exeContext);\n });\n }\n return completedItem;\n } catch (rawError) {\n const error = locatedError(\n rawError,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathToArray(itemPath),\n );\n return handleFieldError(error, returnTypeNode, exeContext);\n }\n });\n\n return containsPromise ? Promise.all(completedResults) : completedResults;\n}\n\n/**\n * Complete a Scalar or Enum by serializing to a valid value, returning\n * null if serialization is not possible.\n */\nfunction completeLeafValue(\n returnType: GraphQLLeafType,\n result: unknown,\n): unknown {\n const serializedResult = returnType.serialize(result);\n if (serializedResult === undefined) {\n throw new Error(\n `Expected a value of type \"${inspect(returnType)}\" but ` +\n `received: ${inspect(result)}`,\n );\n }\n return serializedResult;\n}\n\n/**\n * Complete a value of an abstract type by determining the runtime object type\n * of that value, then complete the value for that type.\n */\nfunction completeAbstractValue(\n exeContext: ExecutionContext,\n returnType: UnionTypeResolver | InterfaceTypeResolver,\n fieldNodes: Array<FieldNode>,\n info: ResolveInfo,\n path: Path,\n result: unknown,\n): PromiseOrValue<ObjMap<unknown>> {\n const resolveTypeFn = returnType.__resolveType ?? exeContext.typeResolver;\n const contextValue = exeContext.contextValue;\n const runtimeTypeName = resolveTypeFn(result, contextValue, info);\n\n if (isPromise(runtimeTypeName)) {\n return runtimeTypeName.then((resolvedRuntimeTypeName) =>\n completeObjectValue(\n exeContext,\n ensureValidRuntimeType(resolvedRuntimeTypeName, exeContext),\n fieldNodes,\n info,\n path,\n result,\n ),\n );\n }\n\n return completeObjectValue(\n exeContext,\n ensureValidRuntimeType(runtimeTypeName, exeContext),\n fieldNodes,\n info,\n path,\n result,\n );\n}\n\nfunction ensureValidRuntimeType(\n runtimeTypeName: unknown,\n exeContext: ExecutionContext,\n): string {\n if (typeof runtimeTypeName !== \"string\") {\n throw new GraphQLError(\n `Could not determine runtime type for abstract type ${runtimeTypeName}`,\n );\n }\n\n const runtimeType: Resolver<unknown, unknown> =\n exeContext.resolvers[runtimeTypeName];\n\n if (!runtimeType) {\n throw new GraphQLError(\n `Type \"${runtimeTypeName}\" does not exist inside the schema.`,\n );\n } else if (\n runtimeType instanceof GraphQLScalarType ||\n runtimeType instanceof GraphQLEnumType ||\n runtimeType instanceof GraphQLInputObjectType ||\n runtimeType.__resolveType\n ) {\n throw new GraphQLError(\n `Given runtime object \"${getRuntimeTypeInstanceName(\n runtimeType,\n )}\" type is not a possible type for \"${runtimeTypeName}\".`,\n );\n } else {\n return runtimeTypeName;\n }\n}\n\nfunction getRuntimeTypeInstanceName(\n runtimeType: Resolver<unknown, unknown>,\n): string {\n if (runtimeType instanceof GraphQLScalarType) {\n return \"GraphQLScalarType\";\n } else if (runtimeType instanceof GraphQLEnumType) {\n return \"GraphQLEnumType\";\n } else if (runtimeType instanceof GraphQLInputObjectType) {\n return \"GraphQLInputObjectType\";\n } else if (\"__types\" in runtimeType) {\n return \"GraphQLUnionType\";\n } else if (\"__implementedBy\" in runtimeType) {\n return \"GraphQLInterfaceType\";\n } else {\n return \"Unknown\";\n }\n}\n\n/**\n * Complete an Object value by executing all sub-selections.\n */\nfunction completeObjectValue(\n exeContext: ExecutionContext,\n returnTypeName: string,\n fieldNodes: Array<FieldNode>,\n _info: ResolveInfo,\n path: Path,\n result: unknown,\n): PromiseOrValue<ObjMap<unknown>> {\n // Collect sub-fields to execute to complete this value.\n const subFieldNodes = collectSubfields(\n exeContext,\n returnTypeName,\n fieldNodes,\n );\n return executeFields(exeContext, returnTypeName, result, path, subFieldNodes);\n}\n\n/**\n * A memoized collection of relevant subfields with regard to the return\n * type. Memoizing ensures the subfields are not repeatedly calculated, which\n * saves overhead when resolving lists of values.\n */\n// TODO: memoize const collectSubfields = memoize3(_collectSubfields);\nfunction collectSubfields(\n exeContext: ExecutionContext,\n returnTypeName: string,\n fieldNodes: Array<FieldNode>,\n): Map<string, Array<FieldNode>> {\n let subFieldNodes = new Map();\n const visitedFragmentNames = new Set<string>();\n for (const node of fieldNodes) {\n if (node.selectionSet) {\n subFieldNodes = collectFields(\n exeContext.resolvers,\n exeContext.fragments,\n exeContext.variableValues,\n returnTypeName,\n node.selectionSet,\n subFieldNodes,\n visitedFragmentNames,\n );\n }\n }\n return subFieldNodes;\n}\n\nfunction invokeBeforeFieldResolveHook(\n resolveInfo: ResolveInfo,\n exeContext: ExecutionContext,\n): void {\n const hook = exeContext.fieldExecutionHooks?.beforeFieldResolve;\n if (!hook) {\n return;\n }\n executeSafe(\n () =>\n hook({\n resolveInfo,\n context: exeContext.contextValue,\n }),\n (_, rawError) => {\n if (rawError) {\n const error = toGraphQLError(\n rawError,\n resolveInfo.path,\n \"Unexpected error in beforeFieldResolve hook\",\n );\n exeContext.errors.push(error);\n }\n },\n );\n}\n\nfunction invokeAfterFieldResolveHook(\n resolveInfo: ResolveInfo,\n exeContext: ExecutionContext,\n result?: unknown,\n error?: unknown,\n): void {\n const hook = exeContext.fieldExecutionHooks?.afterFieldResolve;\n if (!hook) {\n return;\n }\n executeSafe(\n () =>\n hook({\n resolveInfo,\n context: exeContext.contextValue,\n result,\n error,\n }),\n (_, rawError) => {\n if (rawError) {\n const error = toGraphQLError(\n rawError,\n resolveInfo.path,\n \"Unexpected error in afterFieldResolve hook\",\n );\n exeContext.errors.push(error);\n }\n },\n );\n}\n\nfunction invokeAfterFieldCompleteHook(\n resolveInfo: ResolveInfo,\n exeContext: ExecutionContext,\n result?: unknown,\n error?: unknown,\n): void {\n const hook = exeContext.fieldExecutionHooks?.afterFieldComplete;\n if (!hook) {\n return;\n }\n executeSafe(\n () =>\n hook({\n resolveInfo,\n context: exeContext.contextValue,\n result,\n error,\n }),\n (_, rawError) => {\n if (rawError) {\n const error = toGraphQLError(\n rawError,\n resolveInfo.path,\n \"Unexpected error in afterFieldComplete hook\",\n );\n exeContext.errors.push(error);\n }\n },\n );\n}\n\nfunction executeSafe<T>(\n execute: () => T,\n onComplete: (result: T | undefined, error: unknown) => void,\n): T {\n let error: unknown;\n let result: T | undefined;\n try {\n result = execute();\n } catch (e) {\n error = e;\n } finally {\n onComplete(result, error);\n }\n return result as T;\n}\n\nfunction toGraphQLError(\n originalError: unknown,\n path: Path,\n prependMessage: string,\n): GraphQLError {\n const originalMessage =\n originalError instanceof Error\n ? originalError.message\n : inspect(originalError);\n const error = new Error(`${prependMessage}: ${originalMessage}`);\n return locatedError(error, undefined, pathToArray(path));\n}\n\n/**\n * If a resolveType function is not given, then a default resolve behavior is\n * used which attempts two strategies:\n *\n * First, See if the provided value has a `__typename` field defined, if so, use\n * that value as name of the resolved type.\n *\n * Otherwise, test each possible type for the abstract type by calling\n * isTypeOf for the object being coerced, returning the first type that matches.\n */\nexport const defaultTypeResolver: TypeResolver<unknown, unknown> = function (\n value,\n) {\n if (isObjectLike(value) && typeof value.__typename === \"string\") {\n return value.__typename;\n }\n};\n\n/**\n * If a resolve function is not given, then a default resolve behavior is used\n * which takes the property of the source object of the same name as the field\n * and returns it as the result, or if it's a function, returns the result\n * of calling that function while passing along args and context value.\n */\nexport const defaultFieldResolver: FunctionFieldResolver<unknown, unknown> =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function (source: any, args, contextValue, info) {\n // ensure source is a value for which property access is acceptable.\n if (isObjectLike(source) || typeof source === \"function\") {\n const property = source[info.fieldName];\n if (typeof property === \"function\") {\n return source[info.fieldName](args, contextValue, info);\n }\n return property;\n }\n };\n\n// TODO(freiksenet): Custom root type names maybe?\nexport function getOperationRootTypeName(\n operation: OperationDefinitionNode | OperationTypeDefinitionNode,\n): string {\n switch (operation.operation) {\n case \"query\":\n return \"Query\";\n case \"mutation\":\n return \"Mutation\";\n case \"subscription\":\n return \"Subscription\";\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["error"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/extractImplicitTypesRuntime.ts"],
|
|
4
|
+
"sourcesContent": ["// Given a GraphQL document with type definitions, extract all types that can be defined implicitly.\nimport {\n DocumentNode,\n EnumValueDefinitionNode,\n FieldDefinitionNode,\n getDirectiveValues,\n ObjectTypeDefinitionNode,\n GraphQLDeprecatedDirective,\n NamedTypeNode,\n GraphQLEnumType,\n GraphQLEnumValueConfigMap,\n GraphQLScalarType,\n InputValueDefinitionNode,\n Kind,\n EnumTypeDefinitionNode,\n InputObjectTypeDefinitionNode,\n GraphQLInputObjectType,\n GraphQLInputFieldConfigMap,\n GraphQLInputType,\n valueFromAST,\n TypeNode,\n GraphQLNonNull,\n GraphQLList,\n} from \"graphql\";\nimport { Maybe } from \"./jsutils/Maybe\";\nimport { Resolvers, UnionTypeResolver, InterfaceTypeResolver } from \"./types\";\n\nexport function extractImplicitTypes<TSource = unknown, TContext = unknown>(\n document: DocumentNode,\n getTypeByName: (name: string) => GraphQLInputType,\n): Resolvers<TSource, TContext> {\n const result: Resolvers<TSource, TContext> = Object.create(null);\n const implementedBy: Record<string, Array<string>> = {};\n for (const astNode of document.definitions) {\n if (astNode.kind === Kind.SCALAR_TYPE_DEFINITION) {\n const name = astNode.name.value;\n result[name] = new GraphQLScalarType({\n name,\n description: astNode.description?.value,\n });\n } else if (astNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION) {\n result[astNode.name.value] = makeInputObject(astNode, getTypeByName);\n } else if (astNode.kind === Kind.ENUM_TYPE_DEFINITION) {\n result[astNode.name.value] = makeEnum(astNode);\n } else if (astNode.kind === Kind.INTERFACE_TYPE_DEFINITION) {\n if (!implementedBy[astNode.name.value]) {\n implementedBy[astNode.name.value] = [];\n }\n result[astNode.name.value] = {\n __resolveType: undefined,\n __implementedBy: implementedBy[astNode.name.value],\n } as InterfaceTypeResolver;\n } else if (astNode.kind === Kind.UNION_TYPE_DEFINITION) {\n const types = astNode.types?.map((typeNode) => {\n return typeNode.name.value;\n });\n\n result[astNode.name.value] = {\n __resolveType: undefined,\n __types: types || [],\n } as UnionTypeResolver;\n } else if (astNode.kind === Kind.OBJECT_TYPE_DEFINITION) {\n astNode.interfaces?.forEach((node: NamedTypeNode) => {\n if (!implementedBy[node.name.value]) {\n implementedBy[node.name.value] = [];\n }\n implementedBy[node.name.value].push(\n (astNode as ObjectTypeDefinitionNode).name.value,\n );\n });\n\n result[astNode.name.value] = {};\n }\n }\n return result;\n}\n\nfunction makeEnum(astNode: EnumTypeDefinitionNode) {\n const enumValueMap: GraphQLEnumValueConfigMap = Object.create(null);\n for (const value of astNode.values || []) {\n enumValueMap[value.name.value] = {\n description: value.description?.value,\n deprecationReason: getDeprecationReason(value),\n astNode: value,\n };\n }\n\n return new GraphQLEnumType({\n name: astNode.name.value,\n description: astNode.description?.value,\n values: enumValueMap,\n });\n}\n\nfunction makeInputObject(\n astNode: InputObjectTypeDefinitionNode,\n getTypeByName: (name: string) => GraphQLInputType,\n) {\n const name = astNode.name.value;\n\n return new GraphQLInputObjectType({\n name,\n description: astNode.description?.value,\n fields: () => buildInputFieldMap(astNode.fields || [], getTypeByName),\n astNode,\n });\n}\n\nfunction buildInputFieldMap(\n fieldNodes: ReadonlyArray<InputValueDefinitionNode>,\n getTypeByName: (name: string) => GraphQLInputType,\n): GraphQLInputFieldConfigMap {\n const inputFieldMap = Object.create(null);\n for (const field of fieldNodes) {\n // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n const type: GraphQLInputType = getWrappedType(field.type, getTypeByName);\n\n inputFieldMap[field.name.value] = {\n type,\n description: field.description?.value,\n defaultValue: valueFromAST(field.defaultValue, type),\n deprecationReason: getDeprecationReason(field),\n astNode: field,\n };\n }\n return inputFieldMap;\n}\n\nfunction getWrappedType(\n type: TypeNode,\n getTypeByName: (name: string) => GraphQLInputType,\n): GraphQLInputType {\n if (type.kind === Kind.LIST_TYPE) {\n return new GraphQLList(getWrappedType(type.type, getTypeByName));\n } else if (type.kind === Kind.NON_NULL_TYPE) {\n return new GraphQLNonNull(getWrappedType(type.type, getTypeByName));\n } else {\n return getTypeByName(type.name.value);\n }\n}\n\nfunction getDeprecationReason(\n node:\n | EnumValueDefinitionNode\n | FieldDefinitionNode\n | InputValueDefinitionNode,\n): Maybe<string> {\n const deprecated = getDirectiveValues(GraphQLDeprecatedDirective, node);\n return deprecated?.reason;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/extractImplicitTypesRuntime.ts"],
|
|
4
|
+
"sourcesContent": ["// Given a GraphQL document with type definitions, extract all types that can be defined implicitly.\nimport {\n DocumentNode,\n EnumValueDefinitionNode,\n FieldDefinitionNode,\n getDirectiveValues,\n ObjectTypeDefinitionNode,\n GraphQLDeprecatedDirective,\n NamedTypeNode,\n GraphQLEnumType,\n GraphQLEnumValueConfigMap,\n GraphQLScalarType,\n InputValueDefinitionNode,\n Kind,\n EnumTypeDefinitionNode,\n InputObjectTypeDefinitionNode,\n GraphQLInputObjectType,\n GraphQLInputFieldConfigMap,\n GraphQLInputType,\n valueFromAST,\n TypeNode,\n GraphQLNonNull,\n GraphQLList,\n} from \"graphql\";\nimport { Maybe } from \"./jsutils/Maybe\";\nimport { Resolvers, UnionTypeResolver, InterfaceTypeResolver } from \"./types\";\n\nexport function extractImplicitTypes<TSource = unknown, TContext = unknown>(\n document: DocumentNode,\n getTypeByName: (name: string) => GraphQLInputType,\n): Resolvers<TSource, TContext> {\n const result: Resolvers<TSource, TContext> = Object.create(null);\n const implementedBy: Record<string, Array<string>> = {};\n for (const astNode of document.definitions) {\n if (astNode.kind === Kind.SCALAR_TYPE_DEFINITION) {\n const name = astNode.name.value;\n result[name] = new GraphQLScalarType({\n name,\n description: astNode.description?.value,\n });\n } else if (astNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION) {\n result[astNode.name.value] = makeInputObject(astNode, getTypeByName);\n } else if (astNode.kind === Kind.ENUM_TYPE_DEFINITION) {\n result[astNode.name.value] = makeEnum(astNode);\n } else if (astNode.kind === Kind.INTERFACE_TYPE_DEFINITION) {\n if (!implementedBy[astNode.name.value]) {\n implementedBy[astNode.name.value] = [];\n }\n result[astNode.name.value] = {\n __resolveType: undefined,\n __implementedBy: implementedBy[astNode.name.value],\n } as InterfaceTypeResolver;\n } else if (astNode.kind === Kind.UNION_TYPE_DEFINITION) {\n const types = astNode.types?.map((typeNode) => {\n return typeNode.name.value;\n });\n\n result[astNode.name.value] = {\n __resolveType: undefined,\n __types: types || [],\n } as UnionTypeResolver;\n } else if (astNode.kind === Kind.OBJECT_TYPE_DEFINITION) {\n astNode.interfaces?.forEach((node: NamedTypeNode) => {\n if (!implementedBy[node.name.value]) {\n implementedBy[node.name.value] = [];\n }\n implementedBy[node.name.value].push(\n (astNode as ObjectTypeDefinitionNode).name.value,\n );\n });\n\n result[astNode.name.value] = {};\n }\n }\n return result;\n}\n\nfunction makeEnum(astNode: EnumTypeDefinitionNode) {\n const enumValueMap: GraphQLEnumValueConfigMap = Object.create(null);\n for (const value of astNode.values || []) {\n enumValueMap[value.name.value] = {\n description: value.description?.value,\n deprecationReason: getDeprecationReason(value),\n astNode: value,\n };\n }\n\n return new GraphQLEnumType({\n name: astNode.name.value,\n description: astNode.description?.value,\n values: enumValueMap,\n });\n}\n\nfunction makeInputObject(\n astNode: InputObjectTypeDefinitionNode,\n getTypeByName: (name: string) => GraphQLInputType,\n) {\n const name = astNode.name.value;\n\n return new GraphQLInputObjectType({\n name,\n description: astNode.description?.value,\n fields: () => buildInputFieldMap(astNode.fields || [], getTypeByName),\n astNode,\n });\n}\n\nfunction buildInputFieldMap(\n fieldNodes: ReadonlyArray<InputValueDefinitionNode>,\n getTypeByName: (name: string) => GraphQLInputType,\n): GraphQLInputFieldConfigMap {\n const inputFieldMap = Object.create(null);\n for (const field of fieldNodes) {\n // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n const type: GraphQLInputType = getWrappedType(field.type, getTypeByName);\n\n inputFieldMap[field.name.value] = {\n type,\n description: field.description?.value,\n defaultValue: valueFromAST(field.defaultValue, type),\n deprecationReason: getDeprecationReason(field),\n astNode: field,\n };\n }\n return inputFieldMap;\n}\n\nfunction getWrappedType(\n type: TypeNode,\n getTypeByName: (name: string) => GraphQLInputType,\n): GraphQLInputType {\n if (type.kind === Kind.LIST_TYPE) {\n return new GraphQLList(getWrappedType(type.type, getTypeByName));\n } else if (type.kind === Kind.NON_NULL_TYPE) {\n return new GraphQLNonNull(getWrappedType(type.type, getTypeByName));\n } else {\n return getTypeByName(type.name.value);\n }\n}\n\nfunction getDeprecationReason(\n node:\n | EnumValueDefinitionNode\n | FieldDefinitionNode\n | InputValueDefinitionNode,\n): Maybe<string> {\n const deprecated = getDirectiveValues(GraphQLDeprecatedDirective, node);\n return deprecated?.reason;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hooks/types.ts"],
|
|
4
|
+
"sourcesContent": ["import { ResolveInfo } from \"../types\";\n\ninterface BaseExecuteHookArgs {\n context: unknown;\n}\n\ninterface BaseExecuteFieldHookArgs extends BaseExecuteHookArgs {\n resolveInfo: ResolveInfo;\n}\n\nexport type BeforeFieldResolveHookArgs = BaseExecuteFieldHookArgs;\n\nexport interface AfterFieldResolveHookArgs extends BaseExecuteFieldHookArgs {\n result?: unknown;\n error?: unknown;\n}\n\nexport interface AfterFieldCompleteHookArgs extends BaseExecuteFieldHookArgs {\n result?: unknown;\n error?: unknown;\n}\n\nexport interface BeforeFieldResolveHook {\n (args: BeforeFieldResolveHookArgs): void;\n}\n\nexport interface AfterFieldResolveHook {\n (args: AfterFieldResolveHookArgs): void;\n}\n\nexport interface AfterFieldCompleteHook {\n (args: AfterFieldCompleteHookArgs): void;\n}\n\nexport interface ExecutionHooks {\n beforeFieldResolve?: BeforeFieldResolveHook;\n afterFieldResolve?: AfterFieldResolveHook;\n afterFieldComplete?: AfterFieldCompleteHook;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/lib/index.d.ts
CHANGED
|
@@ -3,11 +3,14 @@ export { executeWithSchema } from "./executeWithSchema";
|
|
|
3
3
|
export { subscribeWithSchema } from "./subscribeWithSchema";
|
|
4
4
|
export { subscribeWithoutSchema } from "./subscribeWithoutSchema";
|
|
5
5
|
export type { ObjectTypeResolver, InterfaceTypeResolver, UnionTypeResolver, ScalarTypeResolver, EnumTypeResolver, InputObjectTypeResolver, FunctionFieldResolver, Resolvers, UserResolvers, ResolveInfo, } from "./types";
|
|
6
|
-
export {
|
|
6
|
+
export {
|
|
7
|
+
/** @deprecated Use "@graphitation/supermassive-ast" */
|
|
8
|
+
addTypesToRequestDocument,
|
|
9
|
+
/** @deprecated Use "@graphitation/supermassive-ast" */
|
|
10
|
+
annotateDocumentGraphQLTransform, } from "@graphitation/supermassive-ast";
|
|
7
11
|
export { extractImplicitTypes } from "./extractImplicitTypesRuntime";
|
|
8
12
|
export { specifiedScalars } from "./values";
|
|
9
|
-
export { annotateDocumentGraphQLTransform } from "./transforms/annotateDocumentGraphQLTransform";
|
|
10
13
|
export type { PromiseOrValue } from "./jsutils/PromiseOrValue";
|
|
11
|
-
export type { NameNode, DocumentNode, OperationDefinitionNode, VariableDefinitionNode, VariableNode, SelectionSetNode, FieldNode, ArgumentNode, FragmentSpreadNode, InlineFragmentNode, FragmentDefinitionNode, IntValueNode, FloatValueNode, StringValueNode, BooleanValueNode, NullValueNode, EnumValueNode, ListValueNode, ObjectValueNode, ObjectFieldNode, DirectiveNode, NamedTypeNode, ListTypeNode, NonNullTypeNode, SchemaDefinitionNode, OperationTypeDefinitionNode, ScalarTypeDefinitionNode, ObjectTypeDefinitionNode, FieldDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, UnionTypeDefinitionNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, InputObjectTypeDefinitionNode, DirectiveDefinitionNode, SchemaExtensionNode, ScalarTypeExtensionNode, ObjectTypeExtensionNode, InterfaceTypeExtensionNode, UnionTypeExtensionNode, EnumTypeExtensionNode, InputObjectTypeExtensionNode, } from "
|
|
14
|
+
export type { NameNode, DocumentNode, OperationDefinitionNode, VariableDefinitionNode, VariableNode, SelectionSetNode, FieldNode, ArgumentNode, FragmentSpreadNode, InlineFragmentNode, FragmentDefinitionNode, IntValueNode, FloatValueNode, StringValueNode, BooleanValueNode, NullValueNode, EnumValueNode, ListValueNode, ObjectValueNode, ObjectFieldNode, DirectiveNode, NamedTypeNode, ListTypeNode, NonNullTypeNode, SchemaDefinitionNode, OperationTypeDefinitionNode, ScalarTypeDefinitionNode, ObjectTypeDefinitionNode, FieldDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, UnionTypeDefinitionNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, InputObjectTypeDefinitionNode, DirectiveDefinitionNode, SchemaExtensionNode, ScalarTypeExtensionNode, ObjectTypeExtensionNode, InterfaceTypeExtensionNode, UnionTypeExtensionNode, EnumTypeExtensionNode, InputObjectTypeExtensionNode, } from "@graphitation/supermassive-ast";
|
|
12
15
|
export type { BeforeFieldResolveHookArgs, AfterFieldResolveHookArgs, AfterFieldCompleteHookArgs, BeforeFieldResolveHook, AfterFieldResolveHook, AfterFieldCompleteHook, ExecutionHooks, } from "./hooks/types";
|
|
13
16
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,SAAS,EACT,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,SAAS,EACT,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO;AACL,uDAAuD;AACvD,yBAAyB;AACzB,uDAAuD;AACvD,gCAAgC,GACjC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAExC,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GACf,MAAM,eAAe,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -18,8 +18,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var src_exports = {};
|
|
20
20
|
__export(src_exports, {
|
|
21
|
-
addTypesToRequestDocument: () =>
|
|
22
|
-
annotateDocumentGraphQLTransform: () =>
|
|
21
|
+
addTypesToRequestDocument: () => import_supermassive_ast.addTypesToRequestDocument,
|
|
22
|
+
annotateDocumentGraphQLTransform: () => import_supermassive_ast.annotateDocumentGraphQLTransform,
|
|
23
23
|
executeWithSchema: () => import_executeWithSchema.executeWithSchema,
|
|
24
24
|
executeWithoutSchema: () => import_executeWithoutSchema.executeWithoutSchema,
|
|
25
25
|
extractImplicitTypes: () => import_extractImplicitTypesRuntime.extractImplicitTypes,
|
|
@@ -32,7 +32,6 @@ var import_executeWithoutSchema = require("./executeWithoutSchema");
|
|
|
32
32
|
var import_executeWithSchema = require("./executeWithSchema");
|
|
33
33
|
var import_subscribeWithSchema = require("./subscribeWithSchema");
|
|
34
34
|
var import_subscribeWithoutSchema = require("./subscribeWithoutSchema");
|
|
35
|
-
var
|
|
35
|
+
var import_supermassive_ast = require("@graphitation/supermassive-ast");
|
|
36
36
|
var import_extractImplicitTypesRuntime = require("./extractImplicitTypesRuntime");
|
|
37
37
|
var import_values = require("./values");
|
|
38
|
-
var import_annotateDocumentGraphQLTransform = require("./transforms/annotateDocumentGraphQLTransform");
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { executeWithoutSchema } from \"./executeWithoutSchema\";\nexport { executeWithSchema } from \"./executeWithSchema\";\nexport { subscribeWithSchema } from \"./subscribeWithSchema\";\nexport { subscribeWithoutSchema } from \"./subscribeWithoutSchema\";\n\nexport type {\n ObjectTypeResolver,\n InterfaceTypeResolver,\n UnionTypeResolver,\n ScalarTypeResolver,\n EnumTypeResolver,\n InputObjectTypeResolver,\n FunctionFieldResolver,\n Resolvers,\n UserResolvers,\n ResolveInfo,\n} from \"./types\";\n\nexport {\n /** @deprecated Use \"@graphitation/supermassive-ast\" */\n addTypesToRequestDocument,\n /** @deprecated Use \"@graphitation/supermassive-ast\" */\n annotateDocumentGraphQLTransform,\n} from \"@graphitation/supermassive-ast\";\n\nexport { extractImplicitTypes } from \"./extractImplicitTypesRuntime\";\n\nexport { specifiedScalars } from \"./values\";\n\nexport type { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\n\nexport type {\n NameNode,\n DocumentNode,\n OperationDefinitionNode,\n VariableDefinitionNode,\n VariableNode,\n SelectionSetNode,\n FieldNode,\n ArgumentNode,\n FragmentSpreadNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n NullValueNode,\n EnumValueNode,\n ListValueNode,\n ObjectValueNode,\n ObjectFieldNode,\n DirectiveNode,\n NamedTypeNode,\n ListTypeNode,\n NonNullTypeNode,\n SchemaDefinitionNode,\n OperationTypeDefinitionNode,\n ScalarTypeDefinitionNode,\n ObjectTypeDefinitionNode,\n FieldDefinitionNode,\n InputValueDefinitionNode,\n InterfaceTypeDefinitionNode,\n UnionTypeDefinitionNode,\n EnumTypeDefinitionNode,\n EnumValueDefinitionNode,\n InputObjectTypeDefinitionNode,\n DirectiveDefinitionNode,\n SchemaExtensionNode,\n ScalarTypeExtensionNode,\n ObjectTypeExtensionNode,\n InterfaceTypeExtensionNode,\n UnionTypeExtensionNode,\n EnumTypeExtensionNode,\n InputObjectTypeExtensionNode,\n} from \"@graphitation/supermassive-ast\";\n\nexport type {\n BeforeFieldResolveHookArgs,\n AfterFieldResolveHookArgs,\n AfterFieldCompleteHookArgs,\n BeforeFieldResolveHook,\n AfterFieldResolveHook,\n AfterFieldCompleteHook,\n ExecutionHooks,\n} from \"./hooks/types\";\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAAqC;AACrC,+BAAkC;AAClC,iCAAoC;AACpC,oCAAuC;AAevC,8BAKO;AAEP,yCAAqC;AAErC,oBAAiC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/lib/index.mjs
CHANGED
|
@@ -3,10 +3,12 @@ import { executeWithoutSchema } from "./executeWithoutSchema.mjs";
|
|
|
3
3
|
import { executeWithSchema } from "./executeWithSchema.mjs";
|
|
4
4
|
import { subscribeWithSchema } from "./subscribeWithSchema.mjs";
|
|
5
5
|
import { subscribeWithoutSchema } from "./subscribeWithoutSchema.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
addTypesToRequestDocument,
|
|
8
|
+
annotateDocumentGraphQLTransform
|
|
9
|
+
} from "@graphitation/supermassive-ast";
|
|
7
10
|
import { extractImplicitTypes } from "./extractImplicitTypesRuntime.mjs";
|
|
8
11
|
import { specifiedScalars } from "./values.mjs";
|
|
9
|
-
import { annotateDocumentGraphQLTransform } from "./transforms/annotateDocumentGraphQLTransform.mjs";
|
|
10
12
|
export {
|
|
11
13
|
addTypesToRequestDocument,
|
|
12
14
|
annotateDocumentGraphQLTransform,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { executeWithoutSchema } from \"./executeWithoutSchema\";\nexport { executeWithSchema } from \"./executeWithSchema\";\nexport { subscribeWithSchema } from \"./subscribeWithSchema\";\nexport { subscribeWithoutSchema } from \"./subscribeWithoutSchema\";\n\nexport type {\n ObjectTypeResolver,\n InterfaceTypeResolver,\n UnionTypeResolver,\n ScalarTypeResolver,\n EnumTypeResolver,\n InputObjectTypeResolver,\n FunctionFieldResolver,\n Resolvers,\n UserResolvers,\n ResolveInfo,\n} from \"./types\";\n\nexport {\n /** @deprecated Use \"@graphitation/supermassive-ast\" */\n addTypesToRequestDocument,\n /** @deprecated Use \"@graphitation/supermassive-ast\" */\n annotateDocumentGraphQLTransform,\n} from \"@graphitation/supermassive-ast\";\n\nexport { extractImplicitTypes } from \"./extractImplicitTypesRuntime\";\n\nexport { specifiedScalars } from \"./values\";\n\nexport type { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\n\nexport type {\n NameNode,\n DocumentNode,\n OperationDefinitionNode,\n VariableDefinitionNode,\n VariableNode,\n SelectionSetNode,\n FieldNode,\n ArgumentNode,\n FragmentSpreadNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n NullValueNode,\n EnumValueNode,\n ListValueNode,\n ObjectValueNode,\n ObjectFieldNode,\n DirectiveNode,\n NamedTypeNode,\n ListTypeNode,\n NonNullTypeNode,\n SchemaDefinitionNode,\n OperationTypeDefinitionNode,\n ScalarTypeDefinitionNode,\n ObjectTypeDefinitionNode,\n FieldDefinitionNode,\n InputValueDefinitionNode,\n InterfaceTypeDefinitionNode,\n UnionTypeDefinitionNode,\n EnumTypeDefinitionNode,\n EnumValueDefinitionNode,\n InputObjectTypeDefinitionNode,\n DirectiveDefinitionNode,\n SchemaExtensionNode,\n ScalarTypeExtensionNode,\n ObjectTypeExtensionNode,\n InterfaceTypeExtensionNode,\n UnionTypeExtensionNode,\n EnumTypeExtensionNode,\n InputObjectTypeExtensionNode,\n} from \"@graphitation/supermassive-ast\";\n\nexport type {\n BeforeFieldResolveHookArgs,\n AfterFieldResolveHookArgs,\n AfterFieldCompleteHookArgs,\n BeforeFieldResolveHook,\n AfterFieldResolveHook,\n AfterFieldCompleteHook,\n ExecutionHooks,\n} from \"./hooks/types\";\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AAevC;AAAA,EAEE;AAAA,EAEA;AAAA,OACK;AAEP,SAAS,4BAA4B;AAErC,SAAS,wBAAwB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/Maybe.ts"],
|
|
4
|
+
"sourcesContent": ["/** Conveniently represents flow's \"Maybe\" type https://flow.org/en/docs/types/maybe/ */\nexport type Maybe<T> = null | undefined | T;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/ObjMap.ts"],
|
|
4
|
+
"sourcesContent": ["export interface ObjMap<T> {\n [key: string]: T;\n}\n\nexport type ObjMapLike<T> = ObjMap<T> | { [key: string]: T };\n\nexport interface ReadOnlyObjMap<T> {\n readonly [key: string]: T;\n}\n\nexport type ReadOnlyObjMapLike<T> =\n | ReadOnlyObjMap<T>\n | { readonly [key: string]: T };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/Path.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Maybe } from \"./Maybe\";\n\nexport interface Path {\n readonly prev: Path | undefined;\n readonly key: string | number;\n readonly typename: string | undefined;\n}\n\n/**\n * Given a Path and a key, return a new Path containing the new key.\n */\nexport function addPath(\n prev: Readonly<Path> | undefined,\n key: string | number,\n typename: string | undefined,\n): Path {\n return { prev, key, typename };\n}\n\n/**\n * Given a Path, return an Array of the path keys.\n */\nexport function pathToArray(\n path: Maybe<Readonly<Path>>,\n): Array<string | number> {\n const flattened = [];\n let curr = path;\n while (curr) {\n flattened.push(curr.key);\n curr = curr.prev;\n }\n return flattened.reverse();\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWO,SAAS,QACd,MACA,KACA,UACM;AACN,SAAO,EAAE,MAAM,KAAK,SAAS;AAC/B;AAKO,SAAS,YACd,MACwB;AACxB,QAAM,YAAY,CAAC;AACnB,MAAI,OAAO;AACX,SAAO,MAAM;AACX,cAAU,KAAK,KAAK,GAAG;AACvB,WAAO,KAAK;AAAA,EACd;AACA,SAAO,UAAU,QAAQ;AAC3B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/Path.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Maybe } from \"./Maybe\";\n\nexport interface Path {\n readonly prev: Path | undefined;\n readonly key: string | number;\n readonly typename: string | undefined;\n}\n\n/**\n * Given a Path and a key, return a new Path containing the new key.\n */\nexport function addPath(\n prev: Readonly<Path> | undefined,\n key: string | number,\n typename: string | undefined,\n): Path {\n return { prev, key, typename };\n}\n\n/**\n * Given a Path, return an Array of the path keys.\n */\nexport function pathToArray(\n path: Maybe<Readonly<Path>>,\n): Array<string | number> {\n const flattened = [];\n let curr = path;\n while (curr) {\n flattened.push(curr.key);\n curr = curr.prev;\n }\n return flattened.reverse();\n}\n"],
|
|
5
|
+
"mappings": ";AAWO,SAAS,QACd,MACA,KACA,UACM;AACN,SAAO,EAAE,MAAM,KAAK,SAAS;AAC/B;AAKO,SAAS,YACd,MACwB;AACxB,QAAM,YAAY,CAAC;AACnB,MAAI,OAAO;AACX,SAAO,MAAM;AACX,cAAU,KAAK,KAAK,GAAG;AACvB,WAAO,KAAK;AAAA,EACd;AACA,SAAO,UAAU,QAAQ;AAC3B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/devAssert.ts"],
|
|
4
|
+
"sourcesContent": ["export function devAssert(condition: unknown, message: string): void {\n const booleanCondition = Boolean(condition);\n // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,UAAU,WAAoB,SAAuB;AACnE,QAAM,mBAAmB,QAAQ,SAAS;AAE1C,MAAI,CAAC,kBAAkB;AACrB,UAAM,IAAI,MAAM,OAAO;AAAA,EACzB;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/devAssert.ts"],
|
|
4
|
+
"sourcesContent": ["export function devAssert(condition: unknown, message: string): void {\n const booleanCondition = Boolean(condition);\n // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAAO,SAAS,UAAU,WAAoB,SAAuB;AACnE,QAAM,mBAAmB,QAAQ,SAAS;AAE1C,MAAI,CAAC,kBAAkB;AACrB,UAAM,IAAI,MAAM,OAAO;AAAA,EACzB;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/didYouMean.ts"],
|
|
4
|
+
"sourcesContent": ["const MAX_SUGGESTIONS = 5;\n\n/**\n * Given [ A, B, C ] return ' Did you mean A, B, or C?'.\n */\nexport function didYouMean(suggestions: ReadonlyArray<string>): string;\nexport function didYouMean(\n subMessage: string,\n suggestions: ReadonlyArray<string>,\n): string;\nexport function didYouMean(\n firstArg: string | ReadonlyArray<string>,\n secondArg?: ReadonlyArray<string>,\n) {\n const [subMessage, suggestionsArg] = secondArg\n ? [firstArg as string, secondArg]\n : [undefined, firstArg as ReadonlyArray<string>];\n\n let message = \" Did you mean \";\n if (subMessage) {\n message += subMessage + \" \";\n }\n\n const suggestions = suggestionsArg.map((x) => `\"${x}\"`);\n switch (suggestions.length) {\n case 0:\n return \"\";\n case 1:\n return message + suggestions[0] + \"?\";\n case 2:\n return message + suggestions[0] + \" or \" + suggestions[1] + \"?\";\n }\n\n const selected = suggestions.slice(0, MAX_SUGGESTIONS);\n const lastItem = selected.pop();\n return message + selected.join(\", \") + \", or \" + lastItem + \"?\";\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,kBAAkB;AAUjB,SAAS,WACd,UACA,WACA;AACA,QAAM,CAAC,YAAY,cAAc,IAAI,YACjC,CAAC,UAAoB,SAAS,IAC9B,CAAC,QAAW,QAAiC;AAEjD,MAAI,UAAU;AACd,MAAI,YAAY;AACd,eAAW,aAAa;AAAA,EAC1B;AAEA,QAAM,cAAc,eAAe,IAAI,CAAC,MAAM,IAAI,IAAI;AACtD,UAAQ,YAAY,QAAQ;AAAA,IAC1B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI;AAAA,IACpC,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI,SAAS,YAAY,CAAC,IAAI;AAAA,EAChE;AAEA,QAAM,WAAW,YAAY,MAAM,GAAG,eAAe;AACrD,QAAM,WAAW,SAAS,IAAI;AAC9B,SAAO,UAAU,SAAS,KAAK,IAAI,IAAI,UAAU,WAAW;AAC9D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/didYouMean.ts"],
|
|
4
|
+
"sourcesContent": ["const MAX_SUGGESTIONS = 5;\n\n/**\n * Given [ A, B, C ] return ' Did you mean A, B, or C?'.\n */\nexport function didYouMean(suggestions: ReadonlyArray<string>): string;\nexport function didYouMean(\n subMessage: string,\n suggestions: ReadonlyArray<string>,\n): string;\nexport function didYouMean(\n firstArg: string | ReadonlyArray<string>,\n secondArg?: ReadonlyArray<string>,\n) {\n const [subMessage, suggestionsArg] = secondArg\n ? [firstArg as string, secondArg]\n : [undefined, firstArg as ReadonlyArray<string>];\n\n let message = \" Did you mean \";\n if (subMessage) {\n message += subMessage + \" \";\n }\n\n const suggestions = suggestionsArg.map((x) => `\"${x}\"`);\n switch (suggestions.length) {\n case 0:\n return \"\";\n case 1:\n return message + suggestions[0] + \"?\";\n case 2:\n return message + suggestions[0] + \" or \" + suggestions[1] + \"?\";\n }\n\n const selected = suggestions.slice(0, MAX_SUGGESTIONS);\n const lastItem = selected.pop();\n return message + selected.join(\", \") + \", or \" + lastItem + \"?\";\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,IAAM,kBAAkB;AAUjB,SAAS,WACd,UACA,WACA;AACA,QAAM,CAAC,YAAY,cAAc,IAAI,YACjC,CAAC,UAAoB,SAAS,IAC9B,CAAC,QAAW,QAAiC;AAEjD,MAAI,UAAU;AACd,MAAI,YAAY;AACd,eAAW,aAAa;AAAA,EAC1B;AAEA,QAAM,cAAc,eAAe,IAAI,CAAC,MAAM,IAAI,IAAI;AACtD,UAAQ,YAAY,QAAQ;AAAA,IAC1B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI;AAAA,IACpC,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI,SAAS,YAAY,CAAC,IAAI;AAAA,EAChE;AAEA,QAAM,WAAW,YAAY,MAAM,GAAG,eAAe;AACrD,QAAM,WAAW,SAAS,IAAI;AAC9B,SAAO,UAAU,SAAS,KAAK,IAAI,IAAI,UAAU,WAAW;AAC9D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/identityFunc.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns the first argument it receives.\n */\nexport function identityFunc<T>(x: T): T {\n return x;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,aAAgB,GAAS;AACvC,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/identityFunc.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns the first argument it receives.\n */\nexport function identityFunc<T>(x: T): T {\n return x;\n}\n"],
|
|
5
|
+
"mappings": ";AAGO,SAAS,aAAgB,GAAS;AACvC,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/inspect.ts"],
|
|
4
|
+
"sourcesContent": ["const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n\n/**\n * Used to print values in error messages.\n */\nexport function inspect(value: unknown): string {\n return formatValue(value, []);\n}\n\nfunction formatValue(\n value: unknown,\n seenValues: ReadonlyArray<unknown>,\n): string {\n switch (typeof value) {\n case \"string\":\n return JSON.stringify(value);\n case \"function\":\n return value.name ? `[function ${value.name}]` : \"[function]\";\n case \"object\":\n return formatObjectValue(value, seenValues);\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(\n value: object | null,\n previouslySeenValues: ReadonlyArray<unknown>,\n): string {\n if (value === null) {\n return \"null\";\n }\n\n if (previouslySeenValues.includes(value)) {\n return \"[Circular]\";\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON();\n\n // check for infinite recursion\n if (jsonValue !== value) {\n return typeof jsonValue === \"string\"\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isJSONable(value: any): value is { toJSON: () => unknown } {\n return typeof value.toJSON === \"function\";\n}\n\nfunction formatObject(\n object: object,\n seenValues: ReadonlyArray<unknown>,\n): string {\n const entries = Object.entries(object);\n if (entries.length === 0) {\n return \"{}\";\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return \"[\" + getObjectTag(object) + \"]\";\n }\n\n const properties = entries.map(\n ([key, value]) => key + \": \" + formatValue(value, seenValues),\n );\n return \"{ \" + properties.join(\", \") + \" }\";\n}\n\nfunction formatArray(\n array: ReadonlyArray<unknown>,\n seenValues: ReadonlyArray<unknown>,\n): string {\n if (array.length === 0) {\n return \"[]\";\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return \"[Array]\";\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push(\"... 1 more item\");\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return \"[\" + items.join(\", \") + \"]\";\n}\n\nfunction getObjectTag(object: object): string {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, \"\")\n .replace(/]$/, \"\");\n\n if (tag === \"Object\" && typeof object.constructor === \"function\") {\n const name = object.constructor.name;\n if (typeof name === \"string\" && name !== \"\") {\n return name;\n }\n }\n\n return tag;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,mBAAmB;AACzB,MAAM,sBAAsB;AAKrB,SAAS,QAAQ,OAAwB;AAC9C,SAAO,YAAY,OAAO,CAAC,CAAC;AAC9B;AAEA,SAAS,YACP,OACA,YACQ;AACR,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AACH,aAAO,KAAK,UAAU,KAAK;AAAA,IAC7B,KAAK;AACH,aAAO,MAAM,OAAO,aAAa,MAAM,UAAU;AAAA,IACnD,KAAK;AACH,aAAO,kBAAkB,OAAO,UAAU;AAAA,IAC5C;AACE,aAAO,OAAO,KAAK;AAAA,EACvB;AACF;AAEA,SAAS,kBACP,OACA,sBACQ;AACR,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,EACT;AAEA,MAAI,qBAAqB,SAAS,KAAK,GAAG;AACxC,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,CAAC,GAAG,sBAAsB,KAAK;AAElD,MAAI,WAAW,KAAK,GAAG;AACrB,UAAM,YAAY,MAAM,OAAO;AAG/B,QAAI,cAAc,OAAO;AACvB,aAAO,OAAO,cAAc,WACxB,YACA,YAAY,WAAW,UAAU;AAAA,IACvC;AAAA,EACF,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,WAAO,YAAY,OAAO,UAAU;AAAA,EACtC;AAEA,SAAO,aAAa,OAAO,UAAU;AACvC;AAGA,SAAS,WAAW,OAAgD;AAClE,SAAO,OAAO,MAAM,WAAW;AACjC;AAEA,SAAS,aACP,QACA,YACQ;AACR,QAAM,UAAU,OAAO,QAAQ,MAAM;AACrC,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,SAAS,qBAAqB;AAC3C,WAAO,MAAM,aAAa,MAAM,IAAI;AAAA,EACtC;AAEA,QAAM,aAAa,QAAQ;AAAA,IACzB,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,OAAO,YAAY,OAAO,UAAU;AAAA,EAC9D;AACA,SAAO,OAAO,WAAW,KAAK,IAAI,IAAI;AACxC;AAEA,SAAS,YACP,OACA,YACQ;AACR,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,SAAS,qBAAqB;AAC3C,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,KAAK,IAAI,kBAAkB,MAAM,MAAM;AACnD,QAAM,YAAY,MAAM,SAAS;AACjC,QAAM,QAAQ,CAAC;AAEf,WAAS,IAAI,GAAG,IAAI,KAAK,EAAE,GAAG;AAC5B,UAAM,KAAK,YAAY,MAAM,CAAC,GAAG,UAAU,CAAC;AAAA,EAC9C;AAEA,MAAI,cAAc,GAAG;AACnB,UAAM,KAAK,iBAAiB;AAAA,EAC9B,WAAW,YAAY,GAAG;AACxB,UAAM,KAAK,OAAO,sBAAsB;AAAA,EAC1C;AAEA,SAAO,MAAM,MAAM,KAAK,IAAI,IAAI;AAClC;AAEA,SAAS,aAAa,QAAwB;AAC5C,QAAM,MAAM,OAAO,UAAU,SAC1B,KAAK,MAAM,EACX,QAAQ,cAAc,EAAE,EACxB,QAAQ,MAAM,EAAE;AAEnB,MAAI,QAAQ,YAAY,OAAO,OAAO,gBAAgB,YAAY;AAChE,UAAM,OAAO,OAAO,YAAY;AAChC,QAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/inspect.ts"],
|
|
4
|
+
"sourcesContent": ["const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n\n/**\n * Used to print values in error messages.\n */\nexport function inspect(value: unknown): string {\n return formatValue(value, []);\n}\n\nfunction formatValue(\n value: unknown,\n seenValues: ReadonlyArray<unknown>,\n): string {\n switch (typeof value) {\n case \"string\":\n return JSON.stringify(value);\n case \"function\":\n return value.name ? `[function ${value.name}]` : \"[function]\";\n case \"object\":\n return formatObjectValue(value, seenValues);\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(\n value: object | null,\n previouslySeenValues: ReadonlyArray<unknown>,\n): string {\n if (value === null) {\n return \"null\";\n }\n\n if (previouslySeenValues.includes(value)) {\n return \"[Circular]\";\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON();\n\n // check for infinite recursion\n if (jsonValue !== value) {\n return typeof jsonValue === \"string\"\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isJSONable(value: any): value is { toJSON: () => unknown } {\n return typeof value.toJSON === \"function\";\n}\n\nfunction formatObject(\n object: object,\n seenValues: ReadonlyArray<unknown>,\n): string {\n const entries = Object.entries(object);\n if (entries.length === 0) {\n return \"{}\";\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return \"[\" + getObjectTag(object) + \"]\";\n }\n\n const properties = entries.map(\n ([key, value]) => key + \": \" + formatValue(value, seenValues),\n );\n return \"{ \" + properties.join(\", \") + \" }\";\n}\n\nfunction formatArray(\n array: ReadonlyArray<unknown>,\n seenValues: ReadonlyArray<unknown>,\n): string {\n if (array.length === 0) {\n return \"[]\";\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return \"[Array]\";\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push(\"... 1 more item\");\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return \"[\" + items.join(\", \") + \"]\";\n}\n\nfunction getObjectTag(object: object): string {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, \"\")\n .replace(/]$/, \"\");\n\n if (tag === \"Object\" && typeof object.constructor === \"function\") {\n const name = object.constructor.name;\n if (typeof name === \"string\" && name !== \"\") {\n return name;\n }\n }\n\n return tag;\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,IAAM,mBAAmB;AACzB,IAAM,sBAAsB;AAKrB,SAAS,QAAQ,OAAwB;AAC9C,SAAO,YAAY,OAAO,CAAC,CAAC;AAC9B;AAEA,SAAS,YACP,OACA,YACQ;AACR,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AACH,aAAO,KAAK,UAAU,KAAK;AAAA,IAC7B,KAAK;AACH,aAAO,MAAM,OAAO,aAAa,MAAM,UAAU;AAAA,IACnD,KAAK;AACH,aAAO,kBAAkB,OAAO,UAAU;AAAA,IAC5C;AACE,aAAO,OAAO,KAAK;AAAA,EACvB;AACF;AAEA,SAAS,kBACP,OACA,sBACQ;AACR,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,EACT;AAEA,MAAI,qBAAqB,SAAS,KAAK,GAAG;AACxC,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,CAAC,GAAG,sBAAsB,KAAK;AAElD,MAAI,WAAW,KAAK,GAAG;AACrB,UAAM,YAAY,MAAM,OAAO;AAG/B,QAAI,cAAc,OAAO;AACvB,aAAO,OAAO,cAAc,WACxB,YACA,YAAY,WAAW,UAAU;AAAA,IACvC;AAAA,EACF,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,WAAO,YAAY,OAAO,UAAU;AAAA,EACtC;AAEA,SAAO,aAAa,OAAO,UAAU;AACvC;AAGA,SAAS,WAAW,OAAgD;AAClE,SAAO,OAAO,MAAM,WAAW;AACjC;AAEA,SAAS,aACP,QACA,YACQ;AACR,QAAM,UAAU,OAAO,QAAQ,MAAM;AACrC,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,SAAS,qBAAqB;AAC3C,WAAO,MAAM,aAAa,MAAM,IAAI;AAAA,EACtC;AAEA,QAAM,aAAa,QAAQ;AAAA,IACzB,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,OAAO,YAAY,OAAO,UAAU;AAAA,EAC9D;AACA,SAAO,OAAO,WAAW,KAAK,IAAI,IAAI;AACxC;AAEA,SAAS,YACP,OACA,YACQ;AACR,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,SAAS,qBAAqB;AAC3C,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,KAAK,IAAI,kBAAkB,MAAM,MAAM;AACnD,QAAM,YAAY,MAAM,SAAS;AACjC,QAAM,QAAQ,CAAC;AAEf,WAAS,IAAI,GAAG,IAAI,KAAK,EAAE,GAAG;AAC5B,UAAM,KAAK,YAAY,MAAM,CAAC,GAAG,UAAU,CAAC;AAAA,EAC9C;AAEA,MAAI,cAAc,GAAG;AACnB,UAAM,KAAK,iBAAiB;AAAA,EAC9B,WAAW,YAAY,GAAG;AACxB,UAAM,KAAK,OAAO,sBAAsB;AAAA,EAC1C;AAEA,SAAO,MAAM,MAAM,KAAK,IAAI,IAAI;AAClC;AAEA,SAAS,aAAa,QAAwB;AAC5C,QAAM,MAAM,OAAO,UAAU,SAC1B,KAAK,MAAM,EACX,QAAQ,cAAc,EAAE,EACxB,QAAQ,MAAM,EAAE;AAEnB,MAAI,QAAQ,YAAY,OAAO,OAAO,gBAAgB,YAAY;AAChE,UAAM,OAAO,OAAO,YAAY;AAChC,QAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instanceOf.d.ts","sourceRoot":"","sources":["../../src/jsutils/instanceOf.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,KAAK,
|
|
1
|
+
{"version":3,"file":"instanceOf.d.ts","sourceRoot":"","sources":["../../src/jsutils/instanceOf.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,KAAK,OAqChE,CAAC;AAER,UAAU,WAAY,SAAQ,QAAQ;IACpC,SAAS,EAAE;QACT,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH"}
|