Initial MVP: multiplexer + chat DB
This commit is contained in:
45
src/index.ts
Normal file
45
src/index.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import Fastify from "fastify";
|
||||
import cors from "@fastify/cors";
|
||||
import swagger from "@fastify/swagger";
|
||||
import swaggerUI from "@fastify/swagger-ui";
|
||||
import sensible from "@fastify/sensible";
|
||||
import { env } from "./env.js";
|
||||
import { registerRoutes } from "./routes.js";
|
||||
|
||||
const app = Fastify({
|
||||
logger: {
|
||||
transport: {
|
||||
target: "pino-pretty",
|
||||
options: { colorize: true, translateTime: "SYS:standard" },
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
await app.register(cors, { origin: true, credentials: true });
|
||||
|
||||
await app.register(swagger, {
|
||||
openapi: {
|
||||
info: {
|
||||
title: "LLM Multiplexer Backend",
|
||||
version: "0.1.0",
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
await app.register(swaggerUI, { routePrefix: "/docs" });
|
||||
await app.register(sensible);
|
||||
|
||||
app.setErrorHandler((err, _req, reply) => {
|
||||
const e = err as any;
|
||||
const statusCode = e.statusCode ?? 500;
|
||||
reply.status(statusCode).send({
|
||||
error: true,
|
||||
message: e.message ?? String(e),
|
||||
statusCode,
|
||||
});
|
||||
});
|
||||
|
||||
await registerRoutes(app);
|
||||
|
||||
await app.listen({ port: env.PORT, host: env.HOST });
|
||||
app.log.info(`listening on http://${env.HOST}:${env.PORT}`);
|
||||
Reference in New Issue
Block a user