1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 10:19: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

2.1 KiB
Raw Blame History

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