import type { Schema, ZodTypeDef } from 'zod'; import { z } from 'zod' export default function getValidArrayItemsSchema ( elemSchema: Schema, ) { return z.array(z.unknown()).transform((items) => { const validItems: Array> = []; for (let i = 0; i < items.length; i++) { const item = items[i]; const parsedItem = elemSchema.safeParse(item); if (parsedItem.success) { validItems.push(parsedItem.data); } else { console.log(`Array item with index ${i} is invalid. Error: ${parsedItem.error.message}. Data: ${JSON.stringify(item)}.`) } } return validItems; }) }