diff --git a/api/package-lock.json b/api/package-lock.json index 36aedd2..24aec14 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "connect-sqlite3": "^0.9.16", "cors": "^2.8.5", - "dotenv": "^17.2.1", + "dotenv": "16.6.1", "express": "^5.1.0", "express-session": "^1.18.2", "mariadb": "^3.4.5", @@ -24,9 +24,17 @@ "@types/express": "^5.0.3", "@types/morgan": "^1.9.10", "@types/node": "^24.8.1", + "cross-env": "^10.1.0", "typescript": "^5.9.3" } }, + "node_modules/@epic-web/invariant": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", + "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==", + "dev": true, + "license": "MIT" + }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -610,6 +618,39 @@ "node": ">= 0.10" } }, + "node_modules/cross-env": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz", + "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@epic-web/invariant": "^1.0.0", + "cross-spawn": "^7.0.6" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cross-spawn": { + "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", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/debug": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", @@ -686,9 +727,9 @@ } }, "node_modules/dotenv": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.1.tgz", - "integrity": "sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -1331,8 +1372,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC", - "optional": true + "devOptional": true, + "license": "ISC" }, "node_modules/long": { "version": "5.3.2", @@ -1942,6 +1983,16 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-to-regexp": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", @@ -2239,6 +2290,29 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "license": "ISC" }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", @@ -2689,8 +2763,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, "license": "ISC", - "optional": true, "dependencies": { "isexe": "^2.0.0" }, diff --git a/api/package.json b/api/package.json index 19d5e14..ec58d17 100644 --- a/api/package.json +++ b/api/package.json @@ -8,12 +8,13 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "dev": "tsc && node ./built/api/src/index.js" + "dev": "tsc && cross-env NODE_ENV=development node ./built/api/src/index.js", + "prod": "tsc && node ./built/api/src/index.js" }, "dependencies": { "connect-sqlite3": "^0.9.16", "cors": "^2.8.5", - "dotenv": "^17.2.1", + "dotenv": "16.6.1", "express": "^5.1.0", "express-session": "^1.18.2", "mariadb": "^3.4.5", @@ -26,6 +27,10 @@ "@types/express": "^5.0.3", "@types/morgan": "^1.9.10", "@types/node": "^24.8.1", + "cross-env": "^10.1.0", "typescript": "^5.9.3" + }, + "dotenv": { + "auto": false } -} +} \ No newline at end of file diff --git a/api/src/db.ts b/api/src/db.ts index 96158ba..8b858bf 100644 --- a/api/src/db.ts +++ b/api/src/db.ts @@ -1,8 +1,14 @@ // const mariadb = require('mariadb') import * as mariadb from 'mariadb'; -const dotenv = require('dotenv') -dotenv.config(); +// const dotenv = require('dotenv') +// import path = require('path'); +// console.log('NODE_ENV =', process.env.NODE_ENV); +// const envFile = process.env.NODE_ENV === 'development' ? '.env.development' : '.env'; +// dotenv.config({ path: path.resolve(process.cwd(), envFile) }); +// console.log(`Loaded environment from ${envFile}`); + +// console.log(process.env.DB_HOST) const pool = mariadb.createPool({ host: process.env.DB_HOST, diff --git a/api/src/index.js b/api/src/index.js index cb7629c..0b53f68 100644 --- a/api/src/index.js +++ b/api/src/index.js @@ -1,5 +1,10 @@ const dotenv = require('dotenv') -dotenv.config(); +const path = require('path') +const envFile = process.env.NODE_ENV === 'development' ? '.env.development' : '.env'; +dotenv.config({ path: path.resolve(process.cwd(), envFile) }); +console.log(`Loaded environment from ${envFile}`); + +console.log(process.env.DB_HOST) const express = require('express') const cors = require('cors')