/** * 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 } 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" }