0 Tage Serie
javascript / expert
Snippet

Validierung von Domänenmodellen via Proxies

Proxy-Objekte ermöglichen Meta-Programmierung durch das Abfangen grundlegender Operationen. In Experten-Architekturen werden sie genutzt, um Laufzeit-Schema-Validierung und Datenintegrität zu erzwingen, ohne die Business-Logik zu verunreinigen.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const createSchemaProxy = (target, schema) => {
return new Proxy(target, {
set(obj, prop, value) {
if (schema[prop] && typeof value !== schema[prop]) {
throw new TypeError(`Property ${prop} must be of type ${schema[prop]}`);
}
obj[prop] = value;
return true;
}
});
};
const user = createSchemaProxy({}, { age: 'number', name: 'string' });
user.age = 30; // Works
// user.age = '30'; // Throws TypeError
nodejs
Erklärung
1
set(obj, prop, value) { ... }
Der 'set'-Trap fängt jeden Versuch ab, eine Eigenschaft in das Zielobjekt zu schreiben.
2
throw new TypeError(...);
Erzwingt strikte Typ-Constraints und verhindert, dass invalide Daten in den Applikationsstatus gelangen.