javascript / expert
Snippet
Dynamische Logik-Injektion über Higher-Order Server Actions
In Next.js können Higher-Order Functions Server Actions kapseln, um querschnittliche Belange wie Logging, Validierung oder Telemetrie einzufügen, ohne die Kern-Geschäftslogik zu belasten. Dieser funktionale Ansatz fördert die Wiederverwendbarkeit und eine saubere Trennung der Zuständigkeiten.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
type Action<T, R> = (data: T) => Promise<R>;function withLogging<T, R>(action: Action<T, R>): Action<T, R> {return async (data: T) => {console.log(`Executing with data:`, data);const result = await action(data);console.log(`Finished execution.`);return result;};}const secureAction = withLogging(async (payload: { id: string }) => {return { success: true };});
nextjs
Erklärung
1
return async (data: T) => {
Gibt eine neue asynchrone Funktion zurück, die die ursprüngliche Action kapselt.
2
const result = await action(data);
Ruft die ursprüngliche Geschäftslogik innerhalb des dekorierten Wrappers auf.
3
const secureAction = withLogging(...);
Erstellt eine dekorierte Version der Action, die zur Verwendung in Komponenten bereit ist.