diff --git a/apps/api/package.json b/apps/api/package.json index a5a7cde..586004e 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -3,8 +3,18 @@ "version": "1.0.0", "private": true, "type": "module", + "scripts": { + "dev": "tsx watch src/server.ts", + "build": "tsc", + "start": "node dist/server.js" + }, "dependencies": { + "@glossa/db": "workspace:*", "@glossa/shared": "workspace:*", - "@glossa/db": "workspace:*" + "express": "^5.2.1" + }, + "devDependencies": { + "@types/express": "^5.0.6", + "tsx": "^4.21.0" } } diff --git a/apps/api/src/app.ts b/apps/api/src/app.ts new file mode 100644 index 0000000..0f901cf --- /dev/null +++ b/apps/api/src/app.ts @@ -0,0 +1,12 @@ +import express from "express"; +import type { Express } from "express"; + +export function createApp() { + const app: Express = express(); + + app.get("/api/health", (_req, res) => { + res.json({ status: "ok" }); + }); + + return app; +} diff --git a/apps/api/src/server.ts b/apps/api/src/server.ts new file mode 100644 index 0000000..86d05ed --- /dev/null +++ b/apps/api/src/server.ts @@ -0,0 +1,9 @@ +import { createApp } from "./app.js"; + +const PORT = Number(process.env["PORT"] ?? 3000); + +const app = createApp(); + +app.listen(PORT, () => { + console.log(`Server listening on port ${PORT}`); +}); diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json index a25326f..3b77034 100644 --- a/apps/api/tsconfig.json +++ b/apps/api/tsconfig.json @@ -7,6 +7,8 @@ "compilerOptions": { "module": "NodeNext", "moduleResolution": "NodeNext", + "outDir": "./dist", + "rootDir": "./src", "types": ["vitest/globals"], }, "include": ["src"],