routeName
URL → name: /api/hooks/stripe → <namespace>.hooks.stripe, /api → <namespace>.index; - reads as _.
import type { HttpRoutes } from "#codebase/tcmts/cli/web"; export function routeName(routes: HttpRoutes, pathname: string): string | undefined { if (pathname !== routes.prefix && !pathname.startsWith(routes.prefix + "/")) return undefined; const rest = pathname.slice(routes.prefix.length).replace(/^\/+|\/+$/g, ""); const segs = rest ? rest.split("/").map((s) => s.replaceAll("-", "_")) : ["index"]; return segs.every((s) => /^[A-Za-z_$][\w$]*$/.test(s)) ? [routes.namespace, ...segs].join(".") : ""; }