1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 12:09:35 +01:00
effigenix/frontend/README.md
Sebastian Frick 3cccab1f4d fix(frontend): pnpm dev und pnpm build ohne manuelle Vorbereitung
pnpm dev:
- Internal-Packages-Pattern: packages/ zeigen auf ./src/index.ts
- tsx lädt TypeScript direkt, kein Build-Schritt vor pnpm dev nötig
- publishConfig sichert dist/ für pnpm build und Releases

pnpm build:
- @effigenix/types build ruft nicht mehr generate:types auf
  (openapi.json ist eingecheckt, kein laufendes Backend nötig)
- Veraltete Typreferenzen entfernt/korrigiert:
  SessionToken (nicht im Schema), RoleName/Permission (aus RoleDTO
  abgeleitet), ErrorResponse (als eigene Interface definiert)

docs: READMEs aktualisiert – Schnellstart prominent, Stub-Modus
dokumentiert, Korrekturen (Flyway→Liquibase, com.→de.effigenix)
2026-02-18 21:39:32 +01:00

88 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Effigenix Frontend
TypeScript-Monorepo mit Terminal UI (TUI) und geteilten Packages für das Effigenix ERP.
## Schnellstart
```bash
pnpm install
pnpm dev # startet direkt, kein separater Build-Schritt nötig
```
Das Backend muss unter http://localhost:8080 erreichbar sein.
## Build
```bash
pnpm build # baut alle Packages nach dist/
```
## Weitere Scripts
```bash
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:
```bash
# 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
```bash
# 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 |