mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 08:29:36 +01:00
DACH-Codes und Default-Country in country-defaults.ts zentralisiert statt in jedem Screen hardcoded. API-Fetch-Fehler fallen auf DACH-Fallback zurück statt stiller Fehlerignorierung. Country-Validierung in Pflichtfeld-Formularen ergänzt. |
||
|---|---|---|
| .. | ||
| apps/cli | ||
| packages | ||
| .eslintrc.js | ||
| .gitignore | ||
| .gitkeep | ||
| .prettierrc | ||
| openapi.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.base.json | ||
Effigenix Frontend
TypeScript-Monorepo mit Terminal UI (TUI) und geteilten Packages für das Effigenix ERP.
Schnellstart
pnpm install
pnpm dev # startet direkt, kein separater Build-Schritt nötig
Das Backend muss unter http://localhost:8080 erreichbar sein.
Build
pnpm build # baut alle Packages nach dist/
Weitere Scripts
pnpm test # Tests aller Packages
pnpm run typecheck # TypeScript-Check aller Packages
pnpm run lint # ESLint
pnpm run format # Prettier
Struktur
frontend/
├── apps/
│ └── cli/ # Terminal UI (Ink/React)
│
└── packages/
├── api-client/ # HTTP-Client für die Backend-API
├── types/ # TypeScript-Typen (aus openapi.json generiert)
├── validation/ # Zod-Schemas
└── config/ # Shared Configuration
Packages: Internal-Packages-Pattern
Die packages/-Libraries zeigen in main/exports auf ihre TypeScript-Quellen (./src/index.ts).
tsx lädt sie daher direkt – kein Build-Schritt vor pnpm dev nötig.
pnpm build erzeugt wie gewohnt dist/ via tsup; für ein npm publish greift publishConfig.
OpenAPI-Typen aktualisieren
Die openapi.json ist eingecheckt und wird beim Build direkt verwendet.
Wenn sich die Backend-API ändert:
# Backend lokal starten, dann:
cd packages/types
pnpm run generate:spec # holt openapi.json vom laufenden Backend
pnpm run generate:types # generiert src/generated/api.ts daraus
# Ergebnis committen
Monorepo-Befehle
# Dependency in einem Package installieren
pnpm add axios --filter @effigenix/api-client
# Script in einem Package ausführen
pnpm run --filter @effigenix/cli dev
# Script in allen Packages ausführen
pnpm run --recursive build
Tech Stack
| Tool | Zweck |
|---|---|
| TypeScript | Typsichere Entwicklung |
| React + Ink | Terminal UI |
| pnpm Workspaces | Monorepo-Verwaltung |
| tsup | Zero-config TS-Bundler |
| Zod | Runtime-Validierung |
| Axios | HTTP-Client |
| vitest | Unit Tests |