From 1ffd77659707d11d9e7b114fb196e721120321f5 Mon Sep 17 00:00:00 2001 From: "C. Fuhrman" Date: Wed, 8 Jan 2025 01:10:06 -0500 Subject: [PATCH] Fix dev config --- client/.env | 2 +- client/package-lock.json | 24 ++++++------ .../services/WebsocketService.test.tsx | 10 ++--- client/src/constants.tsx | 4 +- server/app.js | 38 +++++++++++++++++-- server/package-lock.json | 27 ++++++++----- server/package.json | 2 +- 7 files changed, 72 insertions(+), 35 deletions(-) diff --git a/client/.env b/client/.env index fa03bbb..e37f392 100644 --- a/client/.env +++ b/client/.env @@ -1,2 +1,2 @@ VITE_BACKEND_URL=http://localhost:4400 -VITE_AZURE_BACKEND_URL=http://localhost:4400 +VITE_BACKEND_SOCKET_URL=http://localhost:4400 diff --git a/client/package-lock.json b/client/package-lock.json index 873505d..0b49c17 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -2678,9 +2678,9 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", - "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5695,9 +5695,9 @@ "license": "MIT" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -9126,9 +9126,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.8.tgz", - "integrity": "sha512-TcJPw+9RV9dibz1hHUzlLVy8N4X9TnwirAjrU08Juo6BNKggzVfP2ZJ/3ZUSq15Xl5i85i+Z89XBO90pB2PghQ==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.9.tgz", + "integrity": "sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==", "funding": [ { "type": "github", @@ -9511,9 +9511,9 @@ } }, "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { diff --git a/client/src/__tests__/services/WebsocketService.test.tsx b/client/src/__tests__/services/WebsocketService.test.tsx index b4965dc..c0236be 100644 --- a/client/src/__tests__/services/WebsocketService.test.tsx +++ b/client/src/__tests__/services/WebsocketService.test.tsx @@ -5,11 +5,11 @@ import { ENV_VARIABLES } from '../../constants'; jest.mock('socket.io-client'); -// jest.mock('../../constants', () => ({ -// ENV_VARIABLES: { -// VITE_BACKEND_SOCKET_URL: 'https://ets-glitch-backend.glitch.me/' -// } -// })); +jest.mock('../../constants', () => ({ + ENV_VARIABLES: { + VITE_BACKEND_SOCKET_URL: 'https://ets-glitch-backend.glitch.me/' + } +})); describe('WebSocketService', () => { let mockSocket: Partial; diff --git a/client/src/constants.tsx b/client/src/constants.tsx index 09afd51..91eff42 100644 --- a/client/src/constants.tsx +++ b/client/src/constants.tsx @@ -1,8 +1,8 @@ // constants.tsx const ENV_VARIABLES = { MODE: 'production', - VITE_BACKEND_URL: process.env.VITE_BACKEND_URL || "", - VITE_BACKEND_SOCKET_URL: process.env.VITE_BACKEND_SOCKET_URL || "", + VITE_BACKEND_URL: import.meta.env.VITE_BACKEND_URL || "undefined", + VITE_BACKEND_SOCKET_URL: import.meta.env.VITE_BACKEND_SOCKET_URL || "", }; console.log(`ENV_VARIABLES.VITE_BACKEND_URL=${ENV_VARIABLES.VITE_BACKEND_URL}`); diff --git a/server/app.js b/server/app.js index faef1b3..102288d 100644 --- a/server/app.js +++ b/server/app.js @@ -1,6 +1,7 @@ // Import API const express = require("express"); const http = require("http"); +const https = require("https"); const dotenv = require('dotenv'); // Import Sockets @@ -43,6 +44,7 @@ const imagesRouter = require('./routers/images.js'); // Setup environment dotenv.config(); +const isDev = process.env.NODE_ENV === 'development'; const errorHandler = require("./middleware/errorHandler.js"); // Start app @@ -50,7 +52,7 @@ const app = express(); const cors = require("cors"); const bodyParser = require('body-parser'); -const configureServer = (httpServer, isDev) => { +const configureServer = (httpServer) => { return new Server(httpServer, { path: "/socket.io", cors: { @@ -63,18 +65,29 @@ const configureServer = (httpServer, isDev) => { }; // Start sockets (depending on the dev or prod environment) -let server = http.createServer(app); -let isDev = process.env.NODE_ENV === 'development'; +const server = http.createServer(app); console.log(`Environnement: ${process.env.NODE_ENV} (${isDev ? 'dev' : 'prod'})`); const io = configureServer(server); -console.log(`server.io configured: ${io.secure ? 'secure' : 'not secure'}`); +console.log(`Server configured with cors.origin: ${io.opts.cors.origin} and secure: ${io.opts.secure}`); setupWebsocket(io); console.log(`Websocket setup with on() listeners.`); +// const io = socketIo(server, { +// cors: { +// origin: '*', //process.env.FRONTEND_URL, // will be set in .env or Dockerfile +// methods: ['GET', 'POST'], +// }, +// }); + + app.use(cors()); +app.use((req, res, next) => { + console.log(`Incoming request: ${req.method} ${req.url}`); + next(); +}); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); @@ -98,6 +111,23 @@ async function start() { server.listen(port, () => { console.log(`Serveur écoutant sur le port ${port}`); }); + + // if (isDev) { + // // HTTP for development + // http.createServer(app).listen(port, () => { + // console.log(`Serveur en développement écoutant sur le port ${port} (HTTP)`); + // }); + // } else { + // // HTTPS for production + // const sslOptions = { + // key: fs.readFileSync(path.resolve(__dirname, "path_to_ssl_key.pem")), + // cert: fs.readFileSync(path.resolve(__dirname, "path_to_ssl_cert.pem")), + // }; + // https.createServer(sslOptions, app).listen(443, () => { + // console.log(`Serveur en production écoutant sur le port 443 (HTTPS)`); + // }); + // } } start(); + diff --git a/server/package-lock.json b/server/package-lock.json index 644d9ea..fa38b9d 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -2122,10 +2122,11 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2515,9 +2516,10 @@ } }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -2538,7 +2540,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -2553,6 +2555,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/fast-json-stable-stringify": { @@ -4660,9 +4666,10 @@ "dev": true }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" }, "node_modules/picocolors": { "version": "1.0.0", diff --git a/server/package.json b/server/package.json index d3e8919..7ee2e4e 100644 --- a/server/package.json +++ b/server/package.json @@ -6,7 +6,7 @@ "scripts": { "build": "webpack --config webpack.config.js", "start": "node app.js", - "dev": "cross-env NODE_ENV=development nodemon app.js", + "dev": "cross-env DEBUG=socket.io:* NODE_ENV=development nodemon app.js", "test": "jest --colors" }, "keywords": [],