diff --git a/apps/bff/package.json b/apps/bff/package.json index ff907c92..c146facd 100644 --- a/apps/bff/package.json +++ b/apps/bff/package.json @@ -15,8 +15,8 @@ "dev:build:watch": "tsc -p tsconfig.build.json --watch --preserveWatchOutput", "dev:alias": "tsc-alias -p tsconfig.build.json --resolve-full-paths", "dev:alias:watch": "tsc-alias -p tsconfig.build.json --resolve-full-paths -w", - "dev:run:watch": "node --watch dist/main.js", - "dev:run:debug:watch": "node --inspect --watch dist/main.js", + "dev:run:watch": "node --watch --watch-path=dist --watch-path=../../packages/domain/dist dist/main.js", + "dev:run:debug:watch": "node --inspect --watch --watch-path=dist --watch-path=../../packages/domain/dist dist/main.js", "start:debug": "BFF_NODE_RUN_SCRIPT=dev:run:debug:watch bash ./scripts/dev-watch.sh", "start:prod": "node dist/main.js", "lint": "eslint .", diff --git a/apps/bff/src/integrations/japanpost/services/japanpost-address.service.ts b/apps/bff/src/integrations/japanpost/services/japanpost-address.service.ts index 819e7928..3b352647 100644 --- a/apps/bff/src/integrations/japanpost/services/japanpost-address.service.ts +++ b/apps/bff/src/integrations/japanpost/services/japanpost-address.service.ts @@ -79,18 +79,25 @@ export class JapanPostAddressService { throw error; } - // Check if this is an HTTP error from connection layer (already logged there) + // Get raw error message for classification + const rawMessage = error instanceof Error ? error.message : String(error); const errorMessage = extractErrorMessage(error); - const isConnectionError = errorMessage.includes("HTTP") || errorMessage.includes("timed out"); + + // Check if this is an HTTP/connection error (already logged at connection layer) + const isConnectionError = + rawMessage.includes("HTTP") || + rawMessage.includes("timed out") || + rawMessage.includes("failed") || + errorMessage.includes("HTTP") || + errorMessage.includes("timed out"); if (!isConnectionError) { // Only log unexpected errors (e.g., transformation failures) - this.logger.error("Address lookup failed at service layer", { + this.logger.error("Address lookup transformation error", { zipCode: normalizedZip, durationMs, errorType: error instanceof Error ? error.constructor.name : "Unknown", error: errorMessage, - stage: "response_transformation", }); } diff --git a/apps/portal/next.config.mjs b/apps/portal/next.config.mjs index 5ebe63a0..018d5b77 100644 --- a/apps/portal/next.config.mjs +++ b/apps/portal/next.config.mjs @@ -23,11 +23,28 @@ const nextConfig = { }, }, - webpack(config) { + webpack(config, { dev }) { config.resolve.alias = { ...config.resolve.alias, "@customer-portal/domain": path.join(workspaceRoot, "packages/domain/dist"), }; + + // Watch domain package dist for changes in development + if (dev) { + config.watchOptions = { + ...config.watchOptions, + ignored: config.watchOptions?.ignored + ? [...(Array.isArray(config.watchOptions.ignored) ? config.watchOptions.ignored : [config.watchOptions.ignored])] + .filter(p => !String(p).includes("packages/domain")) + : ["**/node_modules/**"], + }; + // Add domain dist to snapshot managed paths for better change detection + config.snapshot = { + ...config.snapshot, + managedPaths: [], + }; + } + return config; },