mirror of
https://github.com/orionprotocol/sdk.git
synced 2026-03-26 23:57:48 +03:00
Added array schema failover / PF onOpen / bridge test / deps bump
This commit is contained in:
20
src/utils/getValidArrayItems.ts
Normal file
20
src/utils/getValidArrayItems.ts
Normal 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;
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user