37 lines
999 B
TypeScript
37 lines
999 B
TypeScript
import type { LoaderFunctionArgs } from "@remix-run/node";
|
|
import { json } from "@remix-run/node";
|
|
import { prisma } from "~/utils/db.server";
|
|
|
|
export const loader = async ({ request }: LoaderFunctionArgs) => {
|
|
try {
|
|
// Check database connectivity
|
|
await prisma.$queryRaw`SELECT 1`;
|
|
|
|
return json({
|
|
status: "ok",
|
|
timestamp: new Date().toISOString(),
|
|
uptime: process.uptime(),
|
|
environment: process.env.NODE_ENV,
|
|
database: "connected"
|
|
}, {
|
|
status: 200,
|
|
headers: {
|
|
"Cache-Control": "no-cache, no-store, must-revalidate",
|
|
"Content-Type": "application/json"
|
|
}
|
|
});
|
|
} catch (error) {
|
|
return json({
|
|
status: "error",
|
|
timestamp: new Date().toISOString(),
|
|
error: "Database connection failed",
|
|
database: "disconnected"
|
|
}, {
|
|
status: 503,
|
|
headers: {
|
|
"Cache-Control": "no-cache, no-store, must-revalidate",
|
|
"Content-Type": "application/json"
|
|
}
|
|
});
|
|
}
|
|
}; |