fix(#1): Address code review findings

- Convert ApiResponse to discriminated union for type-safe error handling
- Add HealthStatus type with HealthState literal union
- Make BaseEntity fields readonly for immutability
- Add GlobalExceptionFilter with structured logging
- Add port validation with clear error messages in main.ts
- Improve parseDate to log warnings for invalid dates
- Add comprehensive Button tests (variants, onClick, disabled)
- Add slugify edge case tests (empty, special chars, numbers)
- Create ESLint configs for all packages
- Remove compiled JS files from src directories
- Convert .prettierrc.js to .prettierrc.json

Refs #1

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Jason Woltje
2026-01-28 15:07:04 -06:00
parent f277afde36
commit 355cf2124b
33 changed files with 411 additions and 191 deletions

View File

@@ -1,11 +1,7 @@
import { Controller, Get } from "@nestjs/common";
import { AppService } from "./app.service";
import type { ApiResponse } from "@mosaic/shared";
interface HealthStatus {
status: string;
timestamp: string;
}
import type { ApiResponse, HealthStatus } from "@mosaic/shared";
import { successResponse } from "@mosaic/shared";
@Controller()
export class AppController {
@@ -18,12 +14,9 @@ export class AppController {
@Get("health")
getHealth(): ApiResponse<HealthStatus> {
return {
success: true,
data: {
status: "healthy",
timestamp: new Date().toISOString(),
},
};
return successResponse({
status: "healthy",
timestamp: new Date().toISOString(),
});
}
}