32 lines
736 B
TypeScript
32 lines
736 B
TypeScript
import { db } from "../db/db.controller.js";
|
|
import { analytics } from "../db/schema/analytics.schema.js";
|
|
|
|
export const ignoredRoutePrefixes = [
|
|
"/health",
|
|
"/favicon.ico",
|
|
"/socket.io",
|
|
"/lst/api/ws",
|
|
"/lst-config.js",
|
|
];
|
|
|
|
export function shouldIgnoreRoute(path: string) {
|
|
return ignoredRoutePrefixes.some((prefix) => path.startsWith(prefix));
|
|
}
|
|
|
|
type CreateRouteHitInput = {
|
|
method: string;
|
|
routePattern: string;
|
|
actualPath: string;
|
|
statusCode: number;
|
|
durationMs: number;
|
|
module?: string | null;
|
|
userId?: string | null;
|
|
userEmail?: string | null;
|
|
ipAddress?: string | null;
|
|
userAgent?: string | null;
|
|
};
|
|
|
|
export async function createRouteHit(input: CreateRouteHitInput) {
|
|
await db.insert(analytics).values(input);
|
|
}
|