nuxt-multi-cache
Version:
SSR route, component and data cache for Nuxt.js
27 lines (26 loc) • 837 B
JavaScript
import { format } from "@tusbar/cache-control";
import { setResponseHeader } from "h3";
import { getMultiCacheCDNHelper, onlyUnique } from "../../helpers/server.js";
import { useMultiCacheApp } from "../utils/useMultiCacheApp.js";
function handleCDN(app, event) {
const cdnHelper = getMultiCacheCDNHelper(event);
if (!cdnHelper) {
return;
}
const cacheTagsValue = cdnHelper._tags.filter(onlyUnique).join(" ");
if (cacheTagsValue) {
setResponseHeader(event, app.config.cdn.cacheTagHeader, cacheTagsValue);
}
const cacheControlValue = format(cdnHelper._control);
if (cacheControlValue) {
setResponseHeader(
event,
app.config.cdn.cacheControlHeader,
cacheControlValue
);
}
}
export function onBeforeResponse(event, response) {
const app = useMultiCacheApp();
handleCDN(app, event);
}