From 077401459996056f7e99b7f90cdffac8e9eed7dd Mon Sep 17 00:00:00 2001 From: Julien Gautier Date: Thu, 30 Apr 2026 16:34:17 +0200 Subject: [PATCH] fix(portal-bff): use bracket notation for process.env access The strict-TS option noPropertyAccessFromIndexSignature: true (set in tsconfig.base.json per ADR-0004) forbids dot-notation access on index signatures. process.env is typed as { [key: string]: string | undefined } so process.env.PORT must be written process.env['PORT']. The Nx generator wrote the dot form by default; fix to comply with the project's strict-TS bar. Touched: portal-bff main.ts and the three portal-bff-e2e support files (global-setup, global-teardown, test-setup). --- apps/portal-bff-e2e/src/support/global-setup.ts | 4 ++-- apps/portal-bff-e2e/src/support/global-teardown.ts | 2 +- apps/portal-bff-e2e/src/support/test-setup.ts | 4 ++-- apps/portal-bff/src/main.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/portal-bff-e2e/src/support/global-setup.ts b/apps/portal-bff-e2e/src/support/global-setup.ts index 76a5879..870ddd1 100644 --- a/apps/portal-bff-e2e/src/support/global-setup.ts +++ b/apps/portal-bff-e2e/src/support/global-setup.ts @@ -7,8 +7,8 @@ module.exports = async function () { // Start services that that the app needs to run (e.g. database, docker-compose, etc.). console.log('\nSetting up...\n'); - const host = process.env.HOST ?? 'localhost'; - const port = process.env.PORT ? Number(process.env.PORT) : 3000; + const host = process.env['HOST'] ?? 'localhost'; + const port = process.env['PORT'] ? Number(process.env['PORT']) : 3000; await waitForPortOpen(port, { host }); // Hint: Use `globalThis` to pass variables to global teardown. diff --git a/apps/portal-bff-e2e/src/support/global-teardown.ts b/apps/portal-bff-e2e/src/support/global-teardown.ts index a28dd11..3f14e49 100644 --- a/apps/portal-bff-e2e/src/support/global-teardown.ts +++ b/apps/portal-bff-e2e/src/support/global-teardown.ts @@ -4,7 +4,7 @@ import { killPort } from '@nx/node/utils'; module.exports = async function () { // Put clean up logic here (e.g. stopping services, docker-compose, etc.). // Hint: `globalThis` is shared between setup and teardown. - const port = process.env.PORT ? Number(process.env.PORT) : 3000; + const port = process.env['PORT'] ? Number(process.env['PORT']) : 3000; await killPort(port); console.log(globalThis.__TEARDOWN_MESSAGE__); }; diff --git a/apps/portal-bff-e2e/src/support/test-setup.ts b/apps/portal-bff-e2e/src/support/test-setup.ts index c185541..4ae5f15 100644 --- a/apps/portal-bff-e2e/src/support/test-setup.ts +++ b/apps/portal-bff-e2e/src/support/test-setup.ts @@ -3,7 +3,7 @@ import axios from 'axios'; module.exports = async function () { // Configure axios for tests to use. - const host = process.env.HOST ?? 'localhost'; - const port = process.env.PORT ?? '3000'; + const host = process.env['HOST'] ?? 'localhost'; + const port = process.env['PORT'] ?? '3000'; axios.defaults.baseURL = `http://${host}:${port}`; }; diff --git a/apps/portal-bff/src/main.ts b/apps/portal-bff/src/main.ts index 6fc72dd..63006ce 100644 --- a/apps/portal-bff/src/main.ts +++ b/apps/portal-bff/src/main.ts @@ -18,7 +18,7 @@ async function bootstrap() { const globalPrefix = 'api'; app.setGlobalPrefix(globalPrefix); - const port = process.env.PORT || 3000; + const port = process.env['PORT'] || 3000; await app.listen(port); Logger.log(`Application is running on: http://localhost:${port}/${globalPrefix}`); }