From 807d37a72959ecb990605d92fa25dd58fbca4945 Mon Sep 17 00:00:00 2001 From: "T. Narantuya" Date: Sat, 30 Aug 2025 17:23:50 +0900 Subject: [PATCH] Enhance TypeScript configuration and logging setup - Added "rootDir" to tsconfig.build.json for improved build structure. - Implemented dynamic import for fs/promises in nest-logger.config.ts to ensure compatibility in different environments and handle directory creation more robustly. --- apps/bff/tsconfig.build.json | 1 + .../shared/src/logging/nest-logger.config.ts | 25 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/apps/bff/tsconfig.build.json b/apps/bff/tsconfig.build.json index caf99450..abd666b4 100644 --- a/apps/bff/tsconfig.build.json +++ b/apps/bff/tsconfig.build.json @@ -5,6 +5,7 @@ "incremental": true, "tsBuildInfoFile": "./tsconfig.build.tsbuildinfo", "outDir": "./dist", + "rootDir": "./src", "sourceMap": true, "declaration": false, "removeComments": true, diff --git a/packages/shared/src/logging/nest-logger.config.ts b/packages/shared/src/logging/nest-logger.config.ts index 2aacb33b..079a50f6 100644 --- a/packages/shared/src/logging/nest-logger.config.ts +++ b/packages/shared/src/logging/nest-logger.config.ts @@ -1,7 +1,19 @@ // Lightweight, framework-agnostic factory that returns an object compatible // with nestjs-pino's LoggerModule.forRoot({ pinoHttp: {...} }) shape without importing types. import { join } from "path"; -import { mkdir } from "fs/promises"; + +// Dynamic import for fs/promises - will be resolved at runtime +async function getMkdir() { + if (typeof window !== 'undefined' || typeof process === 'undefined') { + return null; + } + try { + const fs = await import("fs/promises"); + return fs.mkdir; + } catch { + return null; + } +} export async function createNestPinoConfig(configService: { get(key: string, defaultValue?: T): T; @@ -11,10 +23,13 @@ export async function createNestPinoConfig(configService: { const appName = configService.get("APP_NAME", "customer-portal-bff"); if (nodeEnv === "production") { - try { - await mkdir("logs", { recursive: true }); - } catch { - // ignore + const mkdir = await getMkdir(); + if (mkdir) { + try { + await mkdir("logs", { recursive: true }); + } catch { + // ignore + } } }