56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import { Elysia } from "elysia";
|
|
import swagger from '@elysiajs/swagger';
|
|
|
|
import { ENV } from "./config/env";
|
|
import cors from "@elysiajs/cors";
|
|
import { api } from "./api";
|
|
|
|
const allowedOrigins = [
|
|
"http://localhost:5175",
|
|
"http://localhost:5173",
|
|
"https://your-production-site.com",
|
|
];
|
|
|
|
const app = new Elysia()
|
|
.use(cors({
|
|
origin: allowedOrigins,
|
|
methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"],
|
|
allowedHeaders: ["Content-Type", "Authorization", "X-Requested-With", "Accept", "Origin", "Access-Control-Allow-Origin"],
|
|
credentials: true,
|
|
}))
|
|
.use(swagger({
|
|
path: "/docs",
|
|
documentation: {
|
|
info: {
|
|
title: "Canvas API",
|
|
version: "1.0.0",
|
|
description: "Canvas API Documentation",
|
|
},
|
|
tags: [
|
|
{
|
|
name: "Projects",
|
|
description: "All APIs related to Projects",
|
|
},
|
|
{
|
|
name: "Uploads",
|
|
description: "All APIs related to Uploads"
|
|
}
|
|
],
|
|
}
|
|
}))
|
|
.onError(({ code, error }) => {
|
|
if (code === 'NOT_FOUND')
|
|
return 'Not Found :(';
|
|
console.log("hello from app.ts under error");
|
|
console.error(error)
|
|
});
|
|
|
|
|
|
// all routes here
|
|
app.use(api);
|
|
|
|
app.listen(ENV.SERVER_PORT, () => {
|
|
console.log(`🦊 Elysia is running at ${ENV.SERVER_URL}:${ENV.SERVER_PORT}`)
|
|
})
|
|
|
|
|