javascript / expert
Snippet
Eigene Symbol.species Unterklassenbildung für unveränderliche Next.js Request-Kontext-Wrapper
Durch die Anpassung von Symbol.species in einer Map-Unterklasse für den Next.js Request-Kontext geben abgeleitete Operationen einfache Map-Instanzen zurück, während interner Zustand in privaten Feldern gekapselt bleibt.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export class HeaderMap extends Map {#timestamp = Date.now();static get [Symbol.species]() {return Map;}get metadata() {return Object.freeze({ created: this.#timestamp, count: this.size });}filterByPrefix(prefix) {const matched = new HeaderMap();for (const [key, value] of this) {if (key.startsWith(prefix)) matched.set(key, value);}return matched;}}
nextjs
Erklärung
1
#timestamp = Date.now();
Deklariert ein privates Klassenfeld für die Zeitstempel-Erfassung, auf das ausschließlich innerhalb der Klasse zugegriffen werden kann.
2
static get [Symbol.species]() { return Map; }
Überschreibt den Standard-Species-Konstruktor, sodass integrierte Transformationen einfache Map-Objekte zur Vermeidung von Prototyp-Kontamination liefern.