import { Eta } from "eta"; import type { Context } from "hono"; import path from "node:path"; import * as constants from "@/lib/constants.ts"; import { getCookie } from "hono/cookie"; import utils from "@/lib/utils"; const eta = new Eta({ views: path.join(import.meta.dirname, "../../views"), useWith: true }); export default async function render_view(c: Context, view: string, data?: any) { const user = await c.get('user'); const error = await c.get('error'); const message = await c.get('message'); const logged_in = getCookie(c, 'session'); return c.html(eta.render(view, { ...data, constants, user, logged_in, error, message, utils })); } /** * DOES NOT RETURN A c.html(). * @param c Hono context. * @param view Template to render. * @param data Data (optional) * @returns HTML. */ export async function render_template(c: Context, view: string, data?: any): Promise { const user = await c.get('user'); const error = await c.get('error'); const logged_in = getCookie(c, 'session'); return eta.render(view, { ...data, constants, user, logged_in, error, utils }); }