Added array schema failover / PF onOpen / bridge test / deps bump

This commit is contained in:
Aleksandr Kraiz
2023-03-06 20:47:34 +04:00
parent 31e6a863cc
commit 56cd1356f0
8 changed files with 318 additions and 1027 deletions

View File

@@ -0,0 +1,20 @@
import type { Schema, ZodTypeDef } from 'zod';
import { z } from 'zod'
export default function getValidArrayItemsSchema<DataOut, Def extends ZodTypeDef, DataIn> (
elemSchema: Schema<DataOut, Def, DataIn>,
) {
return z.array(z.unknown()).transform((items) => {
const validItems: Array<z.infer<typeof elemSchema>> = [];
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;
})
}