import { ValidationSchemas } from '~/domain'; import { IAnySchemaRules } from '~/domain/entities/schemas/any-schema'; import { AnySchema } from 'joi'; import { JoiSchema } from '~/infra/joi/helper/joi-types'; import { IJoiRuleParser } from '~/infra/joi/protocols/rule-parsers/parser'; import { IParseNestedSchemas } from '~/infra/joi/protocols/parse-nested-schemas'; type CommonParser = IJoiRuleParser>; export class JoiCommonRulesParser implements CommonParser { constructor(protected readonly parseSchema: IParseNestedSchemas) {} required = (schema: JoiSchema, value: boolean): AnySchema => { if (value) { return schema.required(); } else { return schema.allow(null, ''); } }; }