import { Result } from "../domain/Result.js" export type Validator = { field: keyof T, errorMsg: string, validationFunc: (obj: T) => boolean } /** * Ejecuta una lista de validadores en orden, si alguno * falla devuelve un Error */ export class BodyValidator { validatorList: Validator[] = [] constructor( validators: Validator[] ) { this.validatorList = validators } public validate(obj: T): Result<{ msg: string, field: string }, boolean> { for (const validator of this.validatorList) { if (validator.validationFunc(obj) == false) return { error: { msg: validator.errorMsg, field: String(validator.field) } } } return { data: true }; } }