I'm using yup to validate and type data coming from API. I have the following validators and type:
export const someSchema = object({
id: number().required(),
name: string().required(),
someArray: array().of(string()),
date: dateSchema,
}).from('date', 'startDate')
export const someListSchema = array().of(someSchema)
export type SomeType = InferType<typeof someSchema>;
And it works like a charm, arrays are validated perfectly, and types are assumed as expected.
Only problem is how I validate an array, doing it in the following way:
await someListSchema.validate(data)
And if any element of an array does not meet validator requirements it throws an error and the whole validation process fails. I would like to get rid of invalid array elements and return the rest of the array. How to proceed validation with filtering out invalid elements and keeping valid?
I was trying with option { abortEarly: false }, also tried the approach with iterating through array on doing validations per element, but without success. Any ideas on how to achieve an expected result?
Regards, Bartosz.