0 Tage Serie
javascript / intermediate
Snippet

Dynamische Objekt-Validierung mit Proxies

Das Proxy-Objekt erlaubt es, einen Wrapper für ein anderes Objekt zu erstellen, um grundlegende Operationen wie Eigenschaftszugriff und Zuweisung abzufangen. Dies ist ideal für Schema-Validierung oder Logging, ohne die ursprüngliche Objektlogik zu verändern.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const validator = {
set: (target, prop, value) => {
if (prop === 'score') {
if (!Number.isInteger(value)) throw new TypeError('Score must be an integer');
if (value < 0) throw new RangeError('Score cannot be negative');
}
target[prop] = value;
return true;
}
};
const gameState = new Proxy({}, validator);
gameState.score = 10; // Valid
// gameState.score = -5; // Throws RangeError
nodejs
Erklärung
1
set: (target, prop, value) => { ... }
Ein 'Trap' zum Abfangen von Eigenschaftszuweisungen auf dem Zielobjekt.
2
target[prop] = value;
Wendet den validierten Wert auf das ursprüngliche Objekt an.
3
new Proxy({}, validator);
Erstellt den Proxy mit einem leeren Ziel und den definierten Validierungsregeln.