nuxt-multi-cache
Version:
SSR route, component and data cache for Nuxt.js
34 lines (33 loc) • 1.18 kB
JavaScript
export const MULTI_CACHE_CONTEXT_KEY = "__MULTI_CACHE";
export const MULTI_CACHE_ROUTE_CONTEXT_KEY = "__MULTI_CACHE_ROUTE";
export const MULTI_CACHE_CDN_CONTEXT_KEY = "__MULTI_CACHE_CDN";
export const MULTI_CACHE_PREFIX_KEY = "__MULTI_CACHE_PREFIX";
export function getMultiCacheContext(event) {
return event?.[MULTI_CACHE_CONTEXT_KEY];
}
export function getMultiCacheRouteHelper(event) {
return event?.[MULTI_CACHE_ROUTE_CONTEXT_KEY];
}
export function getMultiCacheCDNHelper(event) {
return event?.[MULTI_CACHE_CDN_CONTEXT_KEY];
}
export function getExpiresValue(maxAge) {
return Math.round(Date.now() / 1e3 + maxAge);
}
export function isExpired(item) {
return item.expires ? Date.now() / 1e3 > item.expires : false;
}
export function getCacheKeyWithPrefix(cacheKey, event) {
const prefix = event[MULTI_CACHE_PREFIX_KEY];
return prefix ? `${prefix}--${cacheKey}` : cacheKey;
}
export function encodeRouteCacheKey(path) {
const questionMarkIndex = path.indexOf("?");
if (questionMarkIndex >= 0) {
return path.substring(0, questionMarkIndex);
}
return path;
}
export function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}