@agentforce/adk
Version:
AgentForce Agent Development Kit - A powerful framework for building AI agents and servers
50 lines (46 loc) • 1.84 kB
text/typescript
import type { Context } from "hono";
import { renderTemplateFile } from "../../utils/handlebars";
import { defaultLogger } from "../../logger";
/**
* Creates a handler for serving HTML or Handlebars template files
* @param filePath - Path to the HTML or HBS file to serve
* @param templateData - Optional data to pass to Handlebars templates
* @returns Hono route handler function
*/
export function createHtmlFileHandler(filePath: string, templateData?: Record<string, any>): (c: Context) => Promise<Response> {
return async (c: Context): Promise<Response> => {
try {
const htmlContent = await renderTemplateFile(filePath, templateData);
// Return HTML response
return c.html(htmlContent);
} catch (error) {
defaultLogger.error(`Error serving file ${filePath}:`, error);
if (error instanceof Error && error.message.includes("ENOENT")) {
return c.html(`
<html>
<head>
<title>File Not Found</title>
</head>
<body>
<h1>404 - File Not Found</h1>
<p>The requested file could not be found: ${filePath}</p>
</body>
</html>
`, 404);
}
return c.html(`
<html>
<head>
<title>Server Error</title>
</head>
<body>
<h1>500 - Internal Server Error</h1>
<p>An error occurred while serving the HTML file.</p>
</body>
</html>
`, 500);
}
};
}