This commit is contained in:
hibna
2026-02-21 13:02:41 +03:00
commit 2215003a4d
59 changed files with 6100 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
{
"name": "@source/api",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"dev": "tsx watch src/index.ts",
"build": "tsc",
"start": "node dist/index.js",
"lint": "eslint src/"
},
"dependencies": {
"@fastify/cookie": "^11.0.0",
"@fastify/cors": "^10.0.0",
"@fastify/jwt": "^9.0.0",
"@fastify/websocket": "^11.0.0",
"@sinclair/typebox": "^0.34.0",
"@source/database": "workspace:*",
"@source/shared": "workspace:*",
"argon2": "^0.41.0",
"fastify": "^5.2.0",
"pino-pretty": "^13.0.0",
"socket.io": "^4.8.0"
},
"devDependencies": {
"tsx": "^4.19.0"
}
}
+33
View File
@@ -0,0 +1,33 @@
import Fastify from 'fastify';
import cors from '@fastify/cors';
import cookie from '@fastify/cookie';
const app = Fastify({
logger: {
transport: {
target: 'pino-pretty',
},
},
});
await app.register(cors, {
origin: process.env.CORS_ORIGIN || 'http://localhost:5173',
credentials: true,
});
await app.register(cookie);
app.get('/api/health', async () => {
return { status: 'ok', timestamp: new Date().toISOString() };
});
const PORT = Number(process.env.PORT) || 3000;
const HOST = process.env.HOST || '0.0.0.0';
try {
await app.listen({ port: PORT, host: HOST });
app.log.info(`API server running on http://${HOST}:${PORT}`);
} catch (err) {
app.log.error(err);
process.exit(1);
}
+8
View File
@@ -0,0 +1,8 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
},
"include": ["src"]
}