-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathshared.mdc
More file actions
31 lines (24 loc) · 1.13 KB
/
shared.mdc
File metadata and controls
31 lines (24 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
---
globs: shared/**/*.ts
---
# Shared-Paket Regeln
## Zweck
Das `@webmud3/shared`-Paket definiert den **Vertrag** zwischen Frontend und Backend. Beide importieren die gleichen Typen, was Typsicherheit über Systemgrenzen gewährleistet.
## Module System
- ES Modules (`"type": "module"`)
- Exports via `exports`-Feld in package.json und Barrel `src/index.ts`
## Was gehört hier rein?
- Socket.IO Event-Interfaces (`ClientToServerEvents`, `ServerToClientEvents`)
- Telnet-bezogene Shared-Types (`LinemodeState`)
- Backend-Konfigurationstypen (`ServerConfig`)
- GMCP-Typen (`GmcpSupport`, `GmcpModuleConfig`, `MudFamilyConfig`, `MudConfig`, `MudConfigFile`) in `gmcp/`
- **Keine** Implementierungen, nur Typen und Interfaces!
## Neuen Typ hinzufügen
1. Typ-Datei in passendem Unterordner anlegen (`sockets/`, `config/`, `gmcp/`)
2. In `src/index.ts` re-exportieren
3. `npm run build --workspace shared` ausführen, da Frontend und Backend die kompilierte Version verwenden
## Build-Reihenfolge
Shared muss **immer zuerst** gebaut werden (passiert automatisch via `prebuild` in Backend/Frontend):
```
shared → frontend + backend (parallel möglich)
```