@paroicms/server
Version:
The ParoiCMS server
34 lines • 1.6 kB
JavaScript
import { render404Html, serveTextFromCacheOr } from "../common/serve-text-or.js";
import { makeCacheKey } from "../common/text-cache.js";
import { renderLiquidTemplate } from "../liquidjs-tools/liquidjs-rendering/render-liquidjs.js";
import { createRenderingContext } from "../liquidjs-tools/liquidjs-rendering/rendering-context.js";
import { makeDetachedTemplatePayload } from "../rendering-payload/make-public-payload.js";
export async function serveMultilingualIndexPage(siteContext, httpContext, tracker) {
const cacheKey = makeCacheKey(siteContext.logger, {
kind: "html",
url: httpContext.req.relativeUrl,
});
const serveOr = serveTextFromCacheOr(siteContext, httpContext, tracker, { cacheKey });
if (await serveOr.serveFromCache())
return;
const renderingContext = await createRenderingContext(siteContext, {
cacheKey,
language: undefined,
tracker,
});
const html = await renderLiquidTemplate(renderingContext, {
templateNames: ["index", "default"],
payload: makeDetachedTemplatePayload(renderingContext, {
language: undefined,
urlQuery: httpContext.req.query,
}),
});
await serveOr.putInCacheAndServe(html, renderingContext.getDependencyKeys());
await renderingContext.close();
}
export async function tailReqHandler(siteContext, httpContext) {
siteContext.logger.debug(`[404] Tail middleware reached for: ${httpContext.req.relativeUrl}`);
await render404Html(siteContext, httpContext);
return true;
}
//# sourceMappingURL=serve-index-page.js.map