28 lines
899 B
TypeScript
28 lines
899 B
TypeScript
import { Elysia } from "elysia";
|
|
import { swagger } from "@elysiajs/swagger";
|
|
import { opentelemetry } from "@elysiajs/opentelemetry";
|
|
import { serverTiming } from "@elysiajs/server-timing";
|
|
import { cors } from '@elysiajs/cors'
|
|
import { note } from "./api/note/note.route";
|
|
import { betterAuthView } from "./lib/auth/auth-view";
|
|
import { userMiddleware, userInfo } from "./middlewares/auth-middleware";
|
|
|
|
const app = new Elysia()
|
|
.use(cors())
|
|
.use(opentelemetry())
|
|
.use(swagger({
|
|
path: "/docs",
|
|
}))
|
|
.use(serverTiming())
|
|
.onError(({ error, code }) => {
|
|
if (code === "NOT_FOUND") return "Not Found :(";
|
|
console.error(error);
|
|
})
|
|
.derive(({ request }) => userMiddleware(request))
|
|
.all("/api/auth/*", betterAuthView)
|
|
.use(note)
|
|
.get("/user", ({ user, session }) => userInfo(user, session));
|
|
|
|
app.listen(3000);
|
|
|
|
console.log("Server is running on: http://localhost:3000")
|