import { ParseValidationError } from '~/data/protocols'; import { MakeObjectSchemaAdapter } from '~/data/use-cases'; import { ApplyDefaultObjectRules } from '~/data/use-cases/apply-default-rules'; import { MakeSchema } from '~/domain'; import { IGetSchema } from '~/infra/joi/protocols'; import { JoiValidator } from '~/infra/joi/validators/use-cases/joi-common-validator'; export const makeObjectSchema = ( parseValidationError: ParseValidationError, getJoiSchema: IGetSchema<'object'> ): MakeSchema<'object'> => { const validator = new JoiValidator(getJoiSchema); return new MakeObjectSchemaAdapter(validator, new ApplyDefaultObjectRules(), parseValidationError); };