import { parse } from 'graphql' import type { TypedDocumentString } from '@/generated/graphql/graphql' const getOperationName = ( doc: TypedDocumentString, ): string | null => { // Fallback to parsing const parsed = parse(doc.toString()) const operation = parsed.definitions.find( (def) => def.kind === 'OperationDefinition', ) return operation?.name ? operation.name.value : null } export const getQueryKeyFromDocument = < TResult, // biome-ignore lint/suspicious/noExplicitAny: TODO(dani) type GraphQL variables properly TVariables extends Record | undefined = undefined, >( doc: TypedDocumentString, ) => { const queryName = getOperationName(doc) return queryName }