1.4 KiB
1.4 KiB
API Router Procedure-Support Pattern
Ziel: Top-Level-Router bleiben dünne tRPC-Kompositionsschichten. Orchestrierung, Audit-Logik und
zusammengehörige Input-Schemas wandern in ein benachbartes *-procedure-support.ts Modul.
Struktur
router/<domain>.tsEnthält nur Procedure-Wiring, Rollen-Gates und die Delegation an benannte Support-Funktionen.router/<domain>-procedure-support.tsEnthält:- zusammengehörige
zod-Input-Schemas für Router-Procedures - DB-Orchestrierung und Guard-Checks
- Audit-Aufrufe
- kleine private Hilfsfunktionen wie
withAuditUser(...)
- zusammengehörige
router/<domain>-support.tsBleibt für pure Builder-, Resolver- und Transform-Helfer reserviert.
Teststrategie
__tests__/<domain>-support.test.tsDeckt reine Helper-Funktionen ab.__tests__/<domain>-procedure-support.test.tsDeckt Orchestrierung, Audit-Snapshots und Guard-Verhalten ab.__tests__/<domain>-router.test.tsDeckt echtecreateCaller-Pfade ab und hält den Router als dünne Integrationsschicht ehrlich.
Guardrails
- Öffentliche Router-Contracts bleiben stabil.
- Keine Logik zurück in den Top-Level-Router ziehen.
- Vorhandene pure Support-Module weiterverwenden statt duplizieren.
- Slice-Tests gezielt fahren; globales
tsc --noEmitnur dort nutzen, wo kein fremder Blocker aktiv ist.
Referenz-Slices
rate-cardeffort-ruleexperience-multipliermanagement-levelblueprintclient