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
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.