import { ParseValidationError, ValidateSchema } from '~/data/protocols'; import { ValidationSchemas } from '~/domain'; import { IApplyDefaultRules } from '~/domain/protocols/apply-default-rules'; export class MakeCommonSchemaAdapter { constructor( protected readonly schemaValidate: ValidateSchema, protected readonly applyDefaultRules: IApplyDefaultRules, protected readonly parseValidationError: ParseValidationError ) {} protected getValidate = (model: ValidateSchema.Model) => { return (value: unknown) => { const errors = this.schemaValidate.validate(model, value); return this.parseValidationError.parse(errors); }; }; }