diff --git a/bin/counterfact.js b/bin/counterfact.js index c88895a4..acfcbb75 100755 --- a/bin/counterfact.js +++ b/bin/counterfact.js @@ -137,6 +137,7 @@ program .option( "--prefix ", "base path from which routes will be served (e.g. /api/v1)", + "", ) .action(main) // eslint-disable-next-line sonar/process-argv diff --git a/src/server/koa-middleware.ts b/src/server/koa-middleware.ts index c503d6dd..238218d6 100644 --- a/src/server/koa-middleware.ts +++ b/src/server/koa-middleware.ts @@ -1,5 +1,6 @@ import type { IncomingHttpHeaders } from "node:http"; +import createDebug from "debug"; import type Koa from "koa"; import koaProxy from "koa-proxy"; @@ -7,6 +8,8 @@ import type { Config } from "./config.js"; import type { Dispatcher } from "./dispatcher.js"; import type { HttpMethods } from "./registry.js"; +const debug = createDebug("counterfact:server:create-koa-app"); + const HTTP_STATUS_CODE_OK = 200; function addCors(ctx: Koa.ExtendableContext, headers?: IncomingHttpHeaders) { @@ -58,6 +61,9 @@ export function koaMiddleware( return async function middleware(ctx, next) { const { proxyEnabled, proxyUrl, routePrefix } = config; + debug("middleware running for path: %s", ctx.request.path); + debug("routePrefix: %s", routePrefix); + if (!ctx.request.path.startsWith(routePrefix)) { // eslint-disable-next-line @typescript-eslint/no-unsafe-return return await next(); diff --git a/src/server/page-middleware.ts b/src/server/page-middleware.ts index 769f3a44..2c2e3c10 100644 --- a/src/server/page-middleware.ts +++ b/src/server/page-middleware.ts @@ -26,11 +26,12 @@ export function pageMiddleware( .join(__dirname, `../client/${templateName}.html.hbs`) .replaceAll("\\", "/"); - debug("pathToHandlebarsTemplate: %s", pathToHandlebarsTemplate); - const render = Handlebars.compile(await readFile(pathToHandlebarsTemplate)); if (ctx.URL.pathname === pathname) { + debug("rendering page: %s", pathname); + debug("locals: %o", locals); + ctx.body = render(locals); return;