javascript / expert
Snippet
Streaming-Response-Modifikation via TransformStream
TransformStream ermöglicht die Verarbeitung und Änderung von Datenpaketen (Chunks), während sie vom Server zum Client gestreamt werden. Dies ist extrem speichereffizient für große Payloads, da die gesamte Response nie vollständig im Speicher gehalten werden muss.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
export async function middleware(req) {const response = await fetch(req.url);const { readable, writable } = new TransformStream({transform(chunk, controller) {const text = new TextDecoder().decode(chunk);const modified = text.replace(/CLIENT_ID/g, 'REDACTED');controller.enqueue(new TextEncoder().encode(modified));}});response.body.pipeTo(writable);return new Response(readable, response);}
nextjs
Erklärung
1
new TransformStream({ transform(chunk, ... ) })
Definiert die Logik zum Abfangen und Ändern von Streaming-Datenpaketen während der Übertragung.
2
const modified = text.replace(...);
Führt eine String-Ersetzung im aktuellen Chunk aus, z. B. zum Maskieren sensibler Identifikatoren.
3
response.body.pipeTo(writable);
Verbindet den ursprünglichen Response-Stream mit dem Eingang des Transformators zur Verarbeitung.