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
This commit is contained in:
Joakim Jäderberg
2025-06-03 06:39:04 +00:00
parent 6a639dfd7e
commit a95ef65d02
14 changed files with 107 additions and 115 deletions

View File

@@ -15,7 +15,9 @@ export const cacheOrGet: DataCache["cacheOrGet"] = async <T>(
ttl: CacheTime,
opts?: CacheOrGetOptions
) => {
const cacheKey = generateCacheKey(key)
const cacheKey = generateCacheKey(key, {
includeGitHashInKey: opts?.includeGitHashInKey ?? true,
})
let cachedValue: Awaited<T> | undefined = undefined
if (shouldGetFromCache(opts)) {
@@ -32,8 +34,12 @@ export const cacheOrGet: DataCache["cacheOrGet"] = async <T>(
const perf = performance.now()
const data = await callback(overrideTTL)
const size = JSON.stringify(data).length / (1024 * 1024)
if (size >= 5) {
cacheLogger.warn(`'${key}' is larger than 5MB!`)
}
cacheLogger.debug(
`Getting data '${cacheKey}' took ${(performance.now() - perf).toFixed(2)}ms`
`Fetching data took ${(performance.now() - perf).toFixed(2)}ms ${size.toFixed(4)}MB for '${key}'`
)
await set<T>(cacheKey, data, realTTL)