Выполнение одного ввода по мере необходимости на основе ввода другой клавиши

Я использую JOI для проверки схемы. В следующей схеме я хочу, чтобы input_file имел требуемый тип, когда type равно jobType.MBR, в противном случае file_name должен оставаться типа required

const jobObjectSchema = {
  type: Joi.string().valid(jobType.MBR, jobType.MP4).required(),
  file_name: Joi.string().required(),
  input_file: Joi.string()
};

Как я могу это сделать?


person Suhail Gupta    schedule 01.02.2018    source источник


Ответы (1)


Используйте Joi any().when.

const jobObjectSchema = {
  type: Joi.string().valid(jobType.MBR, jobType.MP4).required(),
  file_name: Joi.any().when('type', {
    is: jobType.MBR, 
    then: Joi.string().optional(),
    otherwise: Joi.string().required()
  }),
  input_file: Joi.any().when('type', {
    is: jobType.MBR, 
    then: Joi.string().required(),
    otherwise: Joi.string().optional()
  })
};
person shawon191    schedule 01.02.2018