in fusion-core/src/plugins/server-renderer.js [13:38]
export default function getRendererPlugin({
render,
timing,
}: {
render: any,
timing: any,
}) {
return async function renderer(ctx: Context, next: () => Promise<void>) {
const timer = timing.from(ctx);
timer.downstream.resolve(now() - timer.start);
let renderTime = null;
if (ctx.element && !ctx.body && ctx.respond !== false) {
const renderStart = now();
ctx.rendered = await render(ctx.element, ctx);
renderTime = now() - renderStart;
}
timer.upstreamStart = now();
await next();
if (ctx.element && typeof renderTime === 'number') {
timer.render.resolve(renderTime);
}
};
}