UNPKG

nuxt-multi-cache

Version:

SSR route, component and data cache for Nuxt.js

34 lines (33 loc) 1.18 kB
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; }