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
29 lines
888 B
TypeScript
29 lines
888 B
TypeScript
/**
|
|
* Options to control cache behavior when retrieving or storing data.
|
|
*
|
|
* - "cache-first": Default behaviour, check if the needed data is available in the cache first. If the data is found, it is returned immediately. Otherwise, the data is fetched and then cached.
|
|
* - "fetch-then-cache": Always fetch the data first, and then update the cache with the freshly fetched data.
|
|
*/
|
|
export type CacheStrategy = "cache-first" | "fetch-then-cache"
|
|
export type CacheOrGetOptions = {
|
|
cacheStrategy?: CacheStrategy
|
|
includeGitHashInKey?: boolean
|
|
}
|
|
|
|
export function defaultCacheOrGetOptions(
|
|
opts: CacheOrGetOptions = {}
|
|
): CacheOrGetOptions {
|
|
return {
|
|
cacheStrategy: "cache-first",
|
|
...opts,
|
|
}
|
|
}
|
|
|
|
export function shouldGetFromCache(
|
|
opts: CacheOrGetOptions | undefined
|
|
): boolean {
|
|
opts = defaultCacheOrGetOptions(opts)
|
|
|
|
return opts.cacheStrategy === "cache-first"
|
|
}
|