UNPKG

nuxt-multi-cache

Version:

SSR route, component and data cache for Nuxt.js

31 lines (30 loc) 865 B
import { setCachedResponse } from "../../helpers/routeCache.js"; import { useMultiCacheApp } from "../utils/useMultiCacheApp.js"; export function onError(_error, ctx) { try { if (!ctx.event) { return; } const { state } = useMultiCacheApp(); if (ctx.event.__MULTI_CACHE_REVALIDATION_KEY) { state.removeKeyBeingRevalidated(ctx.event.__MULTI_CACHE_REVALIDATION_KEY); } const decoded = ctx.event.__MULTI_CACHE_DECODED_CACHED_ROUTE; if (!decoded) { return; } if (!decoded.staleIfErrorExpires) { return; } const now = Date.now() / 1e3; if (now >= decoded.staleIfErrorExpires) { return; } setCachedResponse(ctx.event, decoded); const response = new Response(decoded.data, { headers: decoded.headers }); return ctx.event.respondWith(response); } catch (_e) { } }