mirror of
https://github.com/orionprotocol/sdk.git
synced 2026-03-15 14:42:38 +03:00
21 lines
716 B
TypeScript
21 lines
716 B
TypeScript
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;
|
|
})
|
|
}
|