javascript / expert
Snippet
Subklassifizierte Array-Sammlung für Payload-Buffer-Manipulation im Next.js Edge Runtime
Zeigt, wie man die Standard-Array-Klasse von JavaScript über objektorientierte Vererbung erweitert und Symbol.species anpasst, um binäre Chunk-Streams in Next.js-Edge-Umgebungen zu verwalten.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
export class ChunkCollection extends Array {static get [Symbol.species]() {return Array;}compactChunks() {return this.filter(chunk => chunk && chunk.length > 0);}toPayloadBuffer() {const validChunks = this.compactChunks();const totalLength = validChunks.reduce((acc, c) => acc + c.length, 0);const result = new Uint8Array(totalLength);let offset = 0;for (const chunk of validChunks) {result.set(chunk, offset);offset += chunk.length;}return result;}}
nextjs
Erklärung
1
export class ChunkCollection extends Array {
Erweitert das native Array-Built-in um domänenspezifische Hilfsfunktionen für binäre Buffer.
2
static get [Symbol.species]() { return Array; }
Überschreibt Symbol.species, sodass abgeleitete Methoden wie filter Standard-Array-Instanzen zurückgeben.
3
compactChunks() {
Wendet native Array-Verarbeitung an, um leere Chunks aus der Sammlung zu entfernen.
4
result.set(chunk, offset);
Kopiert Byte-Chunks iterativ in einen zusammenhängenden Uint8Array-Zielbuffer.