0 Tage Serie
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
javascript
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.