decoval
Version:
DecoVal is a decorator-driven validation pattern that allows you to add validation rules directly to the properties of TypeScript classes, simplifying data control and increasing code readability and reusability.
17 lines (16 loc) • 608 B
JavaScript
const validationMetadata = new Map();
function getValidationKey(target, key) {
const constructor = typeof target === "function" ? target.name : target.constructor.name;
return `${constructor}.${key}`;
}
export function registerValidation(target, key, validator) {
const propertyKey = getValidationKey(target, key);
if (!validationMetadata.has(propertyKey)) {
validationMetadata.set(propertyKey, []);
}
const validators = validationMetadata.get(propertyKey);
if (!validators.includes(validator)) {
validators.push(validator);
}
}
export { validationMetadata };