UNPKG

graphql-request

Version:

Minimal GraphQL client supporting Node and browsers for scripts or simple apps.

1 lines 65.3 kB
{"version":3,"sources":["../../src/legacy/classes/ClientError.ts","../../src/lib/prelude.ts","../../src/legacy/functions/batchRequests.ts","../../src/legacy/functions/rawRequest.ts","../../src/lib/http.ts","../../src/legacy/lib/graphql.ts","../../src/legacy/helpers/analyzeDocument.ts","../../src/legacy/helpers/defaultJsonSerializer.ts","../../src/legacy/helpers/runRequest.ts","../../src/legacy/classes/GraphQLClient.ts","../../src/legacy/functions/request.ts","../../src/legacy/functions/gql.ts","../../src/entrypoints/main.ts"],"names":["request","Kind","print","parse","fetch","variables"],"mappings":"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","file":"main.cjs","sourcesContent":["import type { GraphQLRequestContext, GraphQLResponse } from '../helpers/types.js'\n\nexport class ClientError extends Error {\n public response: GraphQLResponse\n public request: GraphQLRequestContext\n\n constructor(response: GraphQLResponse, request: GraphQLRequestContext) {\n const message = `${ClientError.extractMessage(response)}: ${\n JSON.stringify({\n response,\n request,\n })\n }`\n\n super(message)\n\n Object.setPrototypeOf(this, ClientError.prototype)\n\n this.response = response\n this.request = request\n\n // this is needed as Safari doesn't support .captureStackTrace\n if (typeof Error.captureStackTrace === `function`) {\n Error.captureStackTrace(this, ClientError)\n }\n }\n\n private static extractMessage(response: GraphQLResponse): string {\n return response.errors?.[0]?.message ?? `GraphQL Error (Code: ${String(response.status)})`\n }\n}\n","/* eslint-disable */\nexport type RemoveIndex<T> = {\n [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K]\n}\n\nexport const uppercase = <S extends string>(str: S): Uppercase<S> => str.toUpperCase() as Uppercase<S>\n\nexport const callOrIdentity = <T>(value: MaybeLazy<T>) => {\n return typeof value === `function` ? (value as () => T)() : value\n}\n\nexport type MaybeLazy<T> = T | (() => T)\n\nexport const zip = <A, B>(a: A[], b: B[]): [A, B | undefined][] => a.map((k, i) => [k, b[i]])\n\nexport const HeadersInitToPlainObject = (headers?: HeadersInit): Record<string, string> => {\n let oHeaders: Record<string, string> = {}\n\n if (headers instanceof Headers) {\n oHeaders = HeadersInstanceToPlainObject(headers)\n } else if (Array.isArray(headers)) {\n headers.forEach(([name, value]) => {\n if (name && value !== undefined) {\n oHeaders[name] = value\n }\n })\n } else if (headers) {\n oHeaders = headers\n }\n\n return oHeaders\n}\n\nexport const HeadersInstanceToPlainObject = (headers: Response['headers']): Record<string, string> => {\n const o: Record<string, string> = {}\n headers.forEach((v, k) => {\n o[k] = v\n })\n return o\n}\n\nexport const tryCatch = <$Return, $Throw extends Error = Error>(\n fn: () => $Return,\n): $Return extends Promise<any> ? Promise<Awaited<$Return> | $Throw> : $Return | $Throw => {\n try {\n const result = fn() as any\n if (isPromiseLikeValue(result)) {\n return result.catch((error) => {\n return errorFromMaybeError(error)\n }) as any\n }\n return result\n } catch (error) {\n return errorFromMaybeError(error) as any\n }\n}\n\n/**\n * Ensure that the given value is an error and return it. If it is not an error than\n * wrap it in one, passing the given value as the error message.\n */\nexport const errorFromMaybeError = (maybeError: unknown): Error => {\n if (maybeError instanceof Error) return maybeError\n return new Error(String(maybeError))\n}\n\nexport const isPromiseLikeValue = (value: unknown): value is Promise<unknown> => {\n return (\n typeof value === `object`\n && value !== null\n && `then` in value\n && typeof value.then === `function`\n && `catch` in value\n && typeof value.catch === `function`\n && `finally` in value\n && typeof value.finally === `function`\n )\n}\n\nexport const casesExhausted = (value: never): never => {\n throw new Error(`Unhandled case: ${String(value)}`)\n}\n\nexport const isPlainObject = (value: unknown): value is Record<string, unknown> => {\n return typeof value === `object` && value !== null && !Array.isArray(value)\n}\n\nexport const entries = <T extends Record<string, any>>(obj: T) => Object.entries(obj) as [keyof T, T[keyof T]][]\n\nexport const values = <T extends Record<string, unknown>>(obj: T): T[keyof T][] => Object.values(obj) as T[keyof T][]\n\n// dprint-ignore\nexport type Exact<$Value, $Constraint> =\n (\n $Value extends unknown ? $Constraint extends $Value ? {} extends $Value ? $Constraint :\n { [K in keyof $Value]: Exact<$Value[K], $Constraint[K]> } :\n $Constraint :\n never\n )\n | ($Value extends Narrowable ? $Value : never)\n\n// dprint-ignore\n// export type ExactObjectNonEmpty<$Value, $Constraint> =\n// (\n// $Value extends unknown ? $Constraint extends $Value ? keyof $Value extends never ? ({ 'TypeScript Error: You must supply at least one key.': true } & $Constraint) :\n// { [K in keyof $Value]: Exact<$Value[K], $Constraint[K]> } :\n// $Constraint :\n// never\n// )\n// | ($Value extends Narrowable ? $Value : never)\n\nexport type Narrowable = string | number | bigint | boolean | []\n\nexport type Letter = LetterLower | LetterUpper\n\nexport type Digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'\n\nexport type LetterLower =\n | 'a'\n | 'b'\n | 'c'\n | 'd'\n | 'e'\n | 'f'\n | 'g'\n | 'h'\n | 'i'\n | 'j'\n | 'k'\n | 'l'\n | 'm'\n | 'n'\n | 'o'\n | 'p'\n | 'q'\n | 'r'\n | 's'\n | 't'\n | 'u'\n | 'v'\n | 'w'\n | 'x'\n | 'y'\n | 'z'\nexport type LetterUpper =\n | 'A'\n | 'B'\n | 'C'\n | 'D'\n | 'E'\n | 'F'\n | 'G'\n | 'H'\n | 'I'\n | 'J'\n | 'K'\n | 'L'\n | 'M'\n | 'N'\n | 'O'\n | 'P'\n | 'Q'\n | 'R'\n | 'S'\n | 'T'\n | 'U'\n | 'V'\n | 'W'\n | 'X'\n | 'Y'\n | 'Z'\n\nexport type StringNonEmpty = `${Letter}${string}`\n\nexport type MaybeList<T> = T | T[]\n\nexport type NotEmptyObject<T> = keyof T extends never ? never : T\n\nexport type Values<T> = T[keyof T]\n\nexport type GetKeyOr<T, Key, Or> = Key extends keyof T ? T[Key] : Or\n\nexport type As<T, U> = U extends T ? U : never\n\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n\nexport type LastOf<T> = UnionToIntersection<T extends any ? () => T : never> extends () => infer R ? R : never\n\n// TS4.0+\nexport type Push<T extends any[], V> = [...T, V]\n\n// TS4.1+\nexport type UnionToTuple<T, L = LastOf<T>, N = [T] extends [never] ? true : false> = true extends N ? []\n : Push<UnionToTuple<Exclude<T, L>>, L>\n\nexport type CountKeys<T> = keyof T extends never ? 0 : UnionToTuple<keyof T>['length']\nexport type IsMultipleKeys<T> = IsMultiple<CountKeys<T>>\nexport type IsMultiple<T> = T extends 0 ? false : T extends 1 ? false : true\n\nexport type ExcludeNull<T> = Exclude<T, null>\n\nexport const mapValues = <\n $Obj extends Record<string, any>,\n $Fn extends (value: $Obj[keyof $Obj], key: keyof $Obj) => any,\n>(\n object: $Obj,\n fn: $Fn,\n): Record<keyof $Obj, ReturnType<$Fn>> => {\n return Object.fromEntries(\n Object.entries(object).map(([key, value]) => {\n return [key, fn(value, key)]\n }),\n ) as Record<keyof $Obj, ReturnType<$Fn>>\n}\n\nexport type SetProperty<$Obj extends object, $Prop extends keyof $Obj, $Type extends $Obj[$Prop]> =\n & Omit<$Obj, $Prop>\n & { [_ in $Prop]: $Type }\n\nexport const lowerCaseFirstLetter = (s: string) => {\n return s.charAt(0).toLowerCase() + s.slice(1)\n}\n\nexport function assertArray(v: unknown): asserts v is unknown[] {\n if (!Array.isArray(v)) throw new Error(`Expected array. Got: ${String(v)}`)\n}\n\nexport function assertObject(v: unknown): asserts v is object {\n if (v === null || typeof v !== `object`) throw new Error(`Expected object. Got: ${String(v)}`)\n}\n\nexport type StringKeyof<T> = keyof T & string\n\nexport type MaybePromise<T> = T | Promise<T>\n\nexport const capitalizeFirstLetter = (string: string) => string.charAt(0).toUpperCase() + string.slice(1)\n\nexport type SomeAsyncFunction = (...args: unknown[]) => Promise<unknown>\n\nexport type SomeMaybeAsyncFunction = (...args: unknown[]) => MaybePromise<unknown>\n\nexport type Deferred<T> = {\n promise: Promise<T>\n isResolved: () => boolean\n resolve: (value: T) => void\n reject: (error: unknown) => void\n}\n\nexport const createDeferred = <$T>(options?: { strict?: boolean }): Deferred<$T> => {\n let isResolved = false\n let resolve: (value: $T) => void\n let reject: (error: unknown) => void\n\n const promise = new Promise<$T>(($resolve, $reject) => {\n resolve = $resolve\n reject = $reject\n })\n\n return {\n promise,\n isResolved: () => isResolved,\n resolve: (value) => {\n isResolved = true\n if (options?.strict && isResolved) {\n throw new Error(`Deferred is already resolved. Attempted to resolve with: ${JSON.stringify(value)}`)\n }\n resolve(value)\n },\n reject: (error) => reject(error),\n }\n}\n\nexport const debug = (...args: any[]) => {\n if (process.env[`DEBUG`]) {\n console.log(...args)\n }\n}\n\nexport const debugSub = (...args: any[]) => (...subArgs: any[]) => {\n debug(...args, ...subArgs)\n}\n\nexport type PlusOneUpToTen<n extends number> = n extends 0 ? 1\n : n extends 1 ? 2\n : n extends 2 ? 3\n : n extends 3 ? 4\n : n extends 4 ? 5\n : n extends 5 ? 6\n : n extends 6 ? 7\n : n extends 7 ? 8\n : n extends 8 ? 9\n : n extends 9 ? 10\n : never\n\nexport type MinusOneUpToTen<n extends number> = n extends 10 ? 9\n : n extends 9 ? 8\n : n extends 8 ? 7\n : n extends 7 ? 6\n : n extends 6 ? 5\n : n extends 5 ? 4\n : n extends 4 ? 3\n : n extends 3 ? 2\n : n extends 2 ? 1\n : n extends 1 ? 0\n : never\n\nexport type findIndexForValue<value, list extends readonly [any, ...any[]]> = findIndexForValue_<value, list, 0>\ntype findIndexForValue_<value, list extends readonly [any, ...any[]], i extends number> = value extends list[i] ? i\n : findIndexForValue_<value, list, PlusOneUpToTen<i>>\n\nexport type FindValueAfter<value, list extends readonly [any, ...any[]]> =\n list[PlusOneUpToTen<findIndexForValue<value, list>>]\n\nexport type ValueOr<value, orValue> = value extends undefined ? orValue : value\n\nexport type FindValueAfterOr<value, list extends readonly [any, ...any[]], orValue> = ValueOr<\n list[PlusOneUpToTen<findIndexForValue<value, list>>],\n orValue\n>\n\nexport type GetLastValue<T extends readonly [any, ...any[]]> = T[MinusOneUpToTen<T['length']>]\n\nexport type IsLastValue<value, list extends readonly [any, ...any[]]> = value extends GetLastValue<list> ? true : false\n\nexport type Include<T, U> = T extends U ? T : never\n\nexport const partitionErrors = <T>(array: T[]): [Exclude<T, Error>[], Include<T, Error>[]] => {\n const errors: Include<T, Error>[] = []\n const values: Exclude<T, Error>[] = []\n for (const item of array) {\n if (item instanceof Error) {\n errors.push(item as any)\n } else {\n values.push(item as any)\n }\n }\n return [values, errors]\n}\n","import { GraphQLClient } from '../classes/GraphQLClient.js'\nimport type { RequestDocument, Variables } from '../helpers/types.js'\n\nexport type BatchRequestDocument<V extends Variables = Variables> = {\n document: RequestDocument\n variables?: V\n}\n\nexport interface BatchRequestsOptions<V extends Variables = Variables> {\n documents: BatchRequestDocument<V>[]\n requestHeaders?: HeadersInit\n signal?: RequestInit['signal']\n}\n\nexport interface BatchRequestsExtendedOptions<V extends Variables = Variables> extends BatchRequestsOptions<V> {\n url: string\n}\n\n/**\n * Send a batch of GraphQL Document to the GraphQL server for execution.\n *\n * @example\n *\n * ```ts\n * // You can pass a raw string\n *\n * await batchRequests('https://foo.bar/graphql', [\n * {\n * query: `\n * {\n * query {\n * users\n * }\n * }`\n * },\n * {\n * query: `\n * {\n * query {\n * users\n * }\n * }`\n * }])\n *\n * // You can also pass a GraphQL DocumentNode as query. Convenient if you\n * // are using graphql-tag package.\n *\n * import gql from 'graphql-tag'\n *\n * await batchRequests('https://foo.bar/graphql', [{ query: gql`...` }])\n * ```\n */\nexport const batchRequests: BatchRequests = async (...args: BatchRequestsArgs) => {\n const params = parseBatchRequestsArgsExtended(args)\n const client = new GraphQLClient(params.url)\n return client.batchRequests(params)\n}\n\ntype BatchRequestsArgs =\n | [url: string, documents: BatchRequestDocument[], requestHeaders?: HeadersInit]\n | [options: BatchRequestsExtendedOptions]\n\nexport const parseBatchRequestsArgsExtended = (args: BatchRequestsArgs): BatchRequestsExtendedOptions => {\n if (args.length === 1) {\n return args[0]\n } else {\n return {\n url: args[0],\n documents: args[1],\n requestHeaders: args[2],\n signal: undefined,\n }\n }\n}\n\n// dprint-ignore\ninterface BatchRequests {\n <T extends BatchResult, V extends Variables = Variables>(url: string, documents: BatchRequestDocument<V>[], requestHeaders?: HeadersInit): Promise<T>\n <T extends BatchResult, V extends Variables = Variables>(options: BatchRequestsExtendedOptions<V>): Promise<T>\n}\n\nexport type BatchResult = [Result, ...Result[]]\n\ninterface Result<Data extends object = object> {\n data: Data\n}\n\nexport const parseBatchRequestArgs = <V extends Variables = Variables>(\n documentsOrOptions: BatchRequestDocument<V>[] | BatchRequestsOptions<V>,\n requestHeaders?: HeadersInit,\n): BatchRequestsOptions<V> => {\n // eslint-disable-next-line\n return (documentsOrOptions as BatchRequestsOptions<V>).documents\n ? (documentsOrOptions as BatchRequestsOptions<V>)\n : {\n documents: documentsOrOptions as BatchRequestDocument<V>[],\n requestHeaders: requestHeaders,\n signal: undefined,\n }\n}\n","import { GraphQLClient } from '../classes/GraphQLClient.js'\nimport type {\n GraphQLClientResponse,\n RawRequestOptions,\n Variables,\n VariablesAndRequestHeadersArgs,\n} from '../helpers/types.js'\n\n/**\n * Send a GraphQL Query to the GraphQL server for execution.\n */\nexport const rawRequest: RawRequest = async <T, V extends Variables>(\n ...args: RawRequestArgs<V>\n): Promise<GraphQLClientResponse<T>> => {\n const [urlOrOptions, query, ...variablesAndRequestHeaders] = args\n const requestOptions = parseRawRequestExtendedArgs<V>(urlOrOptions, query, ...variablesAndRequestHeaders)\n const client = new GraphQLClient(requestOptions.url)\n return client.rawRequest<T, V>({\n ...requestOptions,\n })\n}\n\n// dprint-ignore\ninterface RawRequest {\n <T, V extends Variables = Variables>(url: string, query: string, ...variablesAndRequestHeaders: VariablesAndRequestHeadersArgs<V>): Promise<GraphQLClientResponse<T>>\n <T, V extends Variables = Variables>(options: RawRequestExtendedOptions<V>): Promise<GraphQLClientResponse<T>>\n}\n\n// dprint-ignore\ntype RawRequestArgs<V extends Variables> = \n | [options: RawRequestExtendedOptions<V>, query?: string, ...variablesAndRequestHeaders: VariablesAndRequestHeadersArgs<V>]\n | [url: string, query?: string, ...variablesAndRequestHeaders: VariablesAndRequestHeadersArgs<V>]\n\nexport const parseRawRequestExtendedArgs = <V extends Variables = Variables>(\n urlOrOptions: string | RawRequestExtendedOptions<V>,\n query?: string,\n ...variablesAndRequestHeaders: VariablesAndRequestHeadersArgs<V>\n): RawRequestExtendedOptions<V> => {\n const [variables, requestHeaders] = variablesAndRequestHeaders\n return typeof urlOrOptions === `string`\n ? ({\n url: urlOrOptions,\n query: query as string,\n variables,\n requestHeaders,\n signal: undefined,\n } as unknown as RawRequestExtendedOptions<V>)\n : urlOrOptions\n}\n\nexport type RawRequestExtendedOptions<V extends Variables = Variables> = {\n url: string\n} & RawRequestOptions<V>\n\nexport const parseRawRequestArgs = <V extends Variables = Variables>(\n queryOrOptions: string | RawRequestOptions<V>,\n variables?: V,\n requestHeaders?: HeadersInit,\n): RawRequestOptions<V> => {\n return (queryOrOptions as RawRequestOptions<V>).query\n ? (queryOrOptions as RawRequestOptions<V>)\n : ({\n query: queryOrOptions as string,\n variables: variables,\n requestHeaders: requestHeaders,\n signal: undefined,\n } as unknown as RawRequestOptions<V>)\n}\n","export const ACCEPT_HEADER = `Accept`\nexport const CONTENT_TYPE_HEADER = `Content-Type`\nexport const CONTENT_TYPE_JSON = `application/json`\nexport const CONTENT_TYPE_GQL = `application/graphql-response+json`\nexport const statusCodes = {\n success: 200,\n}\n","import { Kind } from 'graphql'\nimport { CONTENT_TYPE_GQL, CONTENT_TYPE_JSON } from '../../lib/http.js'\nimport { isPlainObject } from '../../lib/prelude.js'\n/**\n * Refactored imports from `graphql` to be more specific, this helps import only the required files (100KiB)\n * instead of the entire package (greater than 500KiB) where tree-shaking is not supported.\n * @see https://github.com/jasonkuhrt/graphql-request/pull/543\n */\nimport type { OperationDefinitionNode } from 'graphql'\n\n/**\n * Clean a GraphQL document to send it via a GET query\n */\nexport const cleanQuery = (str: string): string => str.replace(/([\\s,]|#[^\\n\\r]+)+/g, ` `).trim()\n\nexport const isGraphQLContentType = (contentType: string) => {\n const contentTypeLower = contentType.toLowerCase()\n\n return contentTypeLower.includes(CONTENT_TYPE_GQL) || contentTypeLower.includes(CONTENT_TYPE_JSON)\n}\n\nexport type GraphQLRequestResult = GraphQLRequestResultBatch | GraphQLRequestResultSingle\nexport type GraphQLRequestResultBatch = { _tag: 'Batch'; executionResults: GraphQLExecutionResultBatch }\nexport type GraphQLRequestResultSingle = { _tag: 'Single'; executionResult: GraphQLExecutionResultSingle }\n\nexport type GraphQLExecutionResult = GraphQLExecutionResultSingle | GraphQLExecutionResultBatch\nexport type GraphQLExecutionResultBatch = GraphQLExecutionResultSingle[]\nexport type GraphQLExecutionResultSingle = {\n data: object | null | undefined\n errors: undefined | object | object[]\n extensions?: object\n}\n\nexport const parseGraphQLExecutionResult = (result: unknown): Error | GraphQLRequestResult => {\n try {\n if (Array.isArray(result)) {\n return {\n _tag: `Batch`,\n executionResults: result.map(parseExecutionResult),\n }\n } else if (isPlainObject(result)) {\n return {\n _tag: `Single`,\n executionResult: parseExecutionResult(result),\n }\n } else {\n throw new Error(`Invalid execution result: result is not object or array. \\nGot:\\n${String(result)}`)\n }\n } catch (e) {\n return e as Error\n }\n}\n\n/**\n * Example result:\n *\n * ```\n * {\n * \"data\": null,\n * \"errors\": [{\n * \"message\": \"custom error\",\n * \"locations\": [{ \"line\": 2, \"column\": 3 }],\n * \"path\": [\"playerNew\"]\n * }]\n * }\n * ```\n */\nexport const parseExecutionResult = (result: unknown): GraphQLExecutionResultSingle => {\n if (typeof result !== `object` || result === null) {\n throw new Error(`Invalid execution result: result is not object`)\n }\n\n let errors = undefined\n let data = undefined\n let extensions = undefined\n\n if (`errors` in result) {\n if (!isPlainObject(result.errors) && !Array.isArray(result.errors)) {\n throw new Error(`Invalid execution result: errors is not plain object OR array`) // prettier-ignore\n }\n errors = result.errors\n }\n\n // todo add test coverage for case of null. @see https://github.com/jasonkuhrt/graphql-request/issues/739\n if (`data` in result) {\n if (!isPlainObject(result.data) && result.data !== null) {\n throw new Error(`Invalid execution result: data is not plain object`) // prettier-ignore\n }\n data = result.data\n }\n\n if (`extensions` in result) {\n if (!isPlainObject(result.extensions)) throw new Error(`Invalid execution result: extensions is not plain object`) // prettier-ignore\n extensions = result.extensions\n }\n\n return {\n data,\n errors,\n extensions,\n }\n}\n\nexport const isRequestResultHaveErrors = (result: GraphQLRequestResult) =>\n result._tag === `Batch`\n ? result.executionResults.some(isExecutionResultHaveErrors)\n : isExecutionResultHaveErrors(result.executionResult)\n\nexport const isExecutionResultHaveErrors = (result: GraphQLExecutionResultSingle) =>\n Array.isArray(result.errors) ? result.errors.length > 0 : Boolean(result.errors)\n\nexport const isOperationDefinitionNode = (definition: unknown): definition is OperationDefinitionNode => {\n return (\n typeof definition === `object`\n && definition !== null\n && `kind` in definition\n && definition.kind === Kind.OPERATION_DEFINITION\n )\n}\n","import { tryCatch } from '../../lib/prelude.js'\nimport { isOperationDefinitionNode } from '../lib/graphql.js'\nimport type { RequestDocument } from './types.js'\n/**\n * Refactored imports from `graphql` to be more specific, this helps import only the required files (100KiB)\n * instead of the entire package (greater than 500KiB) where tree-shaking is not supported.\n * @see https://github.com/jasonkuhrt/graphql-request/pull/543\n */\nimport type { DocumentNode } from 'graphql'\nimport { parse } from 'graphql'\nimport { print } from 'graphql'\n\n/**\n * helpers\n */\n\nconst extractOperationName = (document: DocumentNode): string | undefined => {\n let operationName = undefined\n\n const defs = document.definitions.filter(isOperationDefinitionNode)\n\n if (defs.length === 1) {\n operationName = defs[0]!.name?.value\n }\n\n return operationName\n}\n\nconst extractIsMutation = (document: DocumentNode): boolean => {\n let isMutation = false\n\n const defs = document.definitions.filter(isOperationDefinitionNode)\n\n if (defs.length === 1) {\n /* eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison --\n * graphql@15's `OperationTypeNode` is a type, but graphql@16's `OperationTypeNode` is a native TypeScript enum\n * Therefore, we cannot use `OperationTypeNode.MUTATION` here because it wouldn't work with graphql@15\n **/\n isMutation = defs[0]!.operation === `mutation`\n }\n\n return isMutation\n}\n\nexport const analyzeDocument = (\n document: RequestDocument,\n excludeOperationName?: boolean,\n): { expression: string; operationName: string | undefined; isMutation: boolean } => {\n const expression = typeof document === `string` ? document : print(document)\n\n let isMutation = false\n let operationName = undefined\n\n if (excludeOperationName) {\n return { expression, isMutation, operationName }\n }\n\n const docNode = tryCatch(() => (typeof document === `string` ? parse(document) : document))\n if (docNode instanceof Error) {\n return { expression, isMutation, operationName }\n }\n\n operationName = extractOperationName(docNode)\n isMutation = extractIsMutation(docNode)\n\n return { expression, operationName, isMutation }\n}\n","import type { JsonSerializer } from './types.js'\n\nexport const defaultJsonSerializer: JsonSerializer = JSON\n","import { ACCEPT_HEADER, CONTENT_TYPE_GQL, CONTENT_TYPE_HEADER, CONTENT_TYPE_JSON } from '../../lib/http.js'\nimport { casesExhausted, uppercase, zip } from '../../lib/prelude.js'\nimport { ClientError } from '../classes/ClientError.js'\nimport type { GraphQLExecutionResultSingle } from '../lib/graphql.js'\nimport {\n cleanQuery,\n isGraphQLContentType,\n isRequestResultHaveErrors,\n parseGraphQLExecutionResult,\n} from '../lib/graphql.js'\nimport { defaultJsonSerializer } from './defaultJsonSerializer.js'\nimport type {\n BatchVariables,\n Fetch,\n FetchOptions,\n GraphQLClientResponse,\n HTTPMethodInput,\n JsonSerializer,\n RequestMiddleware,\n Variables,\n} from './types.js'\n\ninterface Input {\n url: string\n /**\n * The HTTP method to use for queries. Note that mutations are ALWAYS sent as POST requests ([per spec](https://github.com/graphql/graphql-over-http/blob/main/spec/GraphQLOverHTTP.md?rgh-link-date=2022-06-02T09%3A30%3A53Z)).\n *\n * @defaultValue `'POST'`\n */\n method?: HTTPMethodInput\n fetch?: Fetch\n fetchOptions: FetchOptions\n headers?: HeadersInit\n middleware?: RequestMiddleware\n request:\n | {\n _tag: 'Single'\n variables?: Variables\n document: {\n expression: string\n isMutation: boolean\n operationName?: string\n }\n }\n | {\n _tag: 'Batch'\n query: string[]\n operationName?: undefined\n hasMutations: boolean\n variables?: BatchVariables\n }\n}\n\n// @ts-expect-error todo\nexport const runRequest = async (input: Input): Promise<ClientError | GraphQLClientResponse<any>> => {\n // todo make a Config type\n const config = {\n ...input,\n method: input.request._tag === `Single`\n ? input.request.document.isMutation\n ? `POST`\n : uppercase(input.method ?? `post`)\n : input.request.hasMutations\n ? `POST`\n : uppercase(input.method ?? `post`),\n fetchOptions: {\n ...input.fetchOptions,\n errorPolicy: input.fetchOptions.errorPolicy ?? `none`,\n },\n }\n const fetcher = createFetcher(config.method)\n const fetchResponse = await fetcher(config)\n\n if (!fetchResponse.ok) {\n return new ClientError(\n { status: fetchResponse.status, headers: fetchResponse.headers },\n {\n query: input.request._tag === `Single` ? input.request.document.expression : input.request.query,\n variables: input.request.variables,\n },\n )\n }\n\n const result = await parseResultFromResponse(\n fetchResponse,\n input.fetchOptions.jsonSerializer ?? defaultJsonSerializer,\n )\n\n if (result instanceof Error) throw result // todo something better\n\n const clientResponseBase = {\n status: fetchResponse.status,\n headers: fetchResponse.headers,\n }\n\n if (isRequestResultHaveErrors(result) && config.fetchOptions.errorPolicy === `none`) {\n // todo this client response on error is not consistent with the data type for success\n const clientResponse = result._tag === `Batch`\n ? { ...result.executionResults, ...clientResponseBase }\n : {\n ...result.executionResult,\n ...clientResponseBase,\n }\n // @ts-expect-error todo\n return new ClientError(clientResponse, {\n query: input.request._tag === `Single` ? input.request.document.expression : input.request.query,\n variables: input.request.variables,\n })\n }\n switch (result._tag) {\n case `Single`:\n // @ts-expect-error todo\n return {\n ...clientResponseBase,\n ...executionResultClientResponseFields(config)(result.executionResult),\n }\n case `Batch`:\n return {\n ...clientResponseBase,\n data: result.executionResults.map(executionResultClientResponseFields(config)),\n }\n default:\n casesExhausted(result)\n }\n}\n\nconst executionResultClientResponseFields = ($params: Input) => (executionResult: GraphQLExecutionResultSingle) => {\n return {\n extensions: executionResult.extensions,\n data: executionResult.data,\n errors: $params.fetchOptions.errorPolicy === `all` ? executionResult.errors : undefined,\n }\n}\n\nconst parseResultFromResponse = async (response: Response, jsonSerializer: JsonSerializer) => {\n const contentType = response.headers.get(CONTENT_TYPE_HEADER)\n const text = await response.text()\n if (contentType && isGraphQLContentType(contentType)) {\n return parseGraphQLExecutionResult(jsonSerializer.parse(text))\n } else {\n // todo what is this good for...? Seems very random/undefined\n return parseGraphQLExecutionResult(text)\n }\n}\n\nconst createFetcher = (method: 'GET' | 'POST') => async (params: Input) => {\n const headers = new Headers(params.headers)\n let searchParams: URLSearchParams | null = null\n let body = undefined\n\n if (!headers.has(ACCEPT_HEADER)) {\n headers.set(ACCEPT_HEADER, [CONTENT_TYPE_GQL, CONTENT_TYPE_JSON].join(`, `))\n }\n\n if (method === `POST`) {\n const $jsonSerializer = params.fetchOptions.jsonSerializer ?? defaultJsonSerializer\n body = $jsonSerializer.stringify(buildBody(params))\n if (typeof body === `string` && !headers.has(CONTENT_TYPE_HEADER)) {\n headers.set(CONTENT_TYPE_HEADER, CONTENT_TYPE_JSON)\n }\n } else {\n searchParams = buildQueryParams(params)\n }\n\n const init: RequestInit = { method, headers, body, ...params.fetchOptions }\n\n let url = new URL(params.url)\n let initResolved = init\n\n if (params.middleware) {\n const result = await Promise.resolve(\n params.middleware({\n ...init,\n url: params.url,\n operationName: params.request._tag === `Single` ? params.request.document.operationName : undefined,\n variables: params.request.variables,\n }),\n )\n const { url: urlNew, ...initNew } = result\n url = new URL(urlNew)\n initResolved = initNew\n }\n\n if (searchParams) {\n searchParams.forEach((value, name) => {\n url.searchParams.append(name, value)\n })\n }\n\n const $fetch = params.fetch ?? fetch\n return await $fetch(url, initResolved)\n}\n\nconst buildBody = (params: Input) => {\n switch (params.request._tag) {\n case `Single`:\n return {\n query: params.request.document.expression,\n variables: params.request.variables,\n operationName: params.request.document.operationName,\n }\n case `Batch`:\n return zip(params.request.query, params.request.variables ?? []).map(([query, variables]) => ({\n query,\n variables,\n }))\n default:\n throw casesExhausted(params.request)\n }\n}\n\nconst buildQueryParams = (para