Initial commit: Configuration du projet P'titsPas

This commit is contained in:
Julien Martin
2025-04-28 18:17:56 +02:00
commit d5015b9c42
29 changed files with 465 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
{
"name": "supernounou-backend",
"version": "1.0.0",
"description": "Backend API pour SuperNounou",
"main": "src/index.ts",
"scripts": {
"dev": "nodemon src/index.ts",
"build": "tsc",
"start": "node dist/index.js",
"test": "jest"
},
"dependencies": {
"@prisma/client": "^5.0.0",
"express": "^4.18.2",
"jsonwebtoken": "^9.0.0",
"bcrypt": "^5.1.0",
"cors": "^2.8.5",
"dotenv": "^16.0.3",
"helmet": "^7.0.0",
"morgan": "^1.10.0"
},
"devDependencies": {
"@types/express": "^4.17.17",
"@types/node": "^18.15.11",
"@types/bcrypt": "^5.0.0",
"@types/cors": "^2.8.13",
"@types/jsonwebtoken": "^9.0.1",
"@types/morgan": "^1.9.4",
"nodemon": "^2.0.22",
"ts-node": "^10.9.1",
"typescript": "^5.0.4",
"prisma": "^5.0.0",
"jest": "^29.5.0",
"@types/jest": "^29.5.0",
"ts-jest": "^29.1.0"
}
}
+31
View File
@@ -0,0 +1,31 @@
import express from 'express';
import cors from 'cors';
import helmet from 'helmet';
import morgan from 'morgan';
import { PrismaClient } from '@prisma/client';
const app = express();
const prisma = new PrismaClient();
// Middleware
app.use(cors());
app.use(helmet());
app.use(morgan('dev'));
app.use(express.json());
// Routes de base
app.get('/', (req, res) => {
res.json({ message: 'Bienvenue sur l\'API SuperNounou' });
});
// Gestion des erreurs
app.use((err: Error, req: express.Request, res: express.Response, next: express.NextFunction) => {
console.error(err.stack);
res.status(500).json({ message: 'Une erreur est survenue' });
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Serveur démarré sur le port ${PORT}`);
});
+28
View File
@@ -0,0 +1,28 @@
{
"compilerOptions": {
"target": "es2018",
"module": "commonjs",
"lib": ["es2018", "esnext.asynciterable"],
"skipLibCheck": true,
"sourceMap": true,
"outDir": "./dist",
"moduleResolution": "node",
"removeComments": true,
"noImplicitAny": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"noImplicitThis": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"resolveJsonModule": true,
"baseUrl": "."
},
"exclude": ["node_modules"],
"include": ["./src/**/*.ts"]
}