Files
web/apps/scandic-web/lib/graphql/getOperationName.ts
Joakim Jäderberg a95ef65d02 Merged in feat/use-hash-for-graphql-cache (pull request #2251)
Feature: Use hash of query+variables for graphql cache instead of gitsha

* feature: use a hash of query+variables as part of the cache key instead of gitsha

* .

* Merge branch 'master' of bitbucket.org:scandic-swap/web into feat/use-hash-for-graphql-cache

* use correct json stringify

* merge

* remove edgeRequest in favor of request

* add more indicative logging


Approved-by: Linus Flood
2025-06-03 06:39:04 +00:00

23 lines
663 B
TypeScript

import type { DocumentNode } from "graphql"
export function getOperationName(query: string | DocumentNode): string {
let operationName = ""
if (typeof query === "string") {
const operationRegex = /(query|mutation|subscription)\s+(\w+)/
const match = query.match(operationRegex)
if (match && match[2]) {
operationName = match[2]
}
} else {
const opDefinition = query.definitions.find(
(def) => def.kind === "OperationDefinition" && def.name
)
if (opDefinition && "name" in opDefinition && opDefinition.name) {
operationName = opDefinition.name.value
}
}
return operationName ?? "AnonymousOperation"
}