Библиотека JavaScript/TypeScript для проверки схемы TypeScript-first со статическим выводом типа.
2 ответа

Дата ограничения размещения React zodResolver должна быть больше, чем сейчас

Я использую библиотеку zod для проверки своих форм реакции. Я использую эту схему. import * as zod from "zod"; export const appointmentSchema = zod.object({ title: zod.string().nonempty("Please enter a title"), description: zod.string(), scheduledDa…
19 фев '21 в 13:06
1 ответ

Zod - установка ограничений длины для объединенных массивов в объекте

Я использую Zod для разработки этих схем. У меня есть объект с двумя полями, каждое из которых представляет собой массив. Я хочу установить ограничение, чтобы общая длина этих двух массивов не превышала трех. Есть идеи, как к этому подойти? Код ниже…
01 сен '21 в 22:38
0 ответов

Получение типов из Zod, дженериков?

Я бы хотел, чтобы у этой функции был typeof z.object(...) параметр и вернуть предполагаемый тип. import { z } from 'zod' const foo = (schema: unknown): unknown => { const data = { username: 'andrew' } // data will be dynamic schema.parse(data) re…
13 сен '21 в 07:15
1 ответ

Как преобразовать рекурсивную общую форму (машинописный текст)

Мне нравится синтаксический анализатор Zod, но, возможно, я надул голову, создав библиотеку форм. В идеальном конечном состоянии входная форма трансформируется для создания { fieldA: { value, onChange, errors } }. Он работает на одном уровне, но нея…
25 сен '21 в 23:11
1 ответ

Есть ли способ получить массив объектов с некоторыми из них литералами?

Я думаю о следующей проверке с помощью zod, и я понятия не имею, как это сделать (или, если это возможно, с помощью zod). Мне нужен массив объектов, все одинаковой формы, с некоторыми из них с буквальными реквизитами, мне нужно, чтобы они всегда при…
29 окт '21 в 17:36
1 ответ

Неправильный вывод 'any' в ситуации, связанной с общей композицией функций и Rust-подобным типом 'Result'

В нашей кодовой базе есть тип, похожий по духу на Rust Result или Haskell's Either. Я определил функцию, которая состоит из двух ParseFunc функция. Моя проблема: когда я звоню compose, в некоторых случаях TypeScript определяет первый аргумент типа …
19 ноя '21 в 03:50
1 ответ

Заставить zod выполнять проверку типа верхнего уровня на входе .parse()

Я понимаю, что цель zod - проанализировать ненадежные входные данные и подтвердить, что они имеют тип, соответствующий вашей схеме. Но обычно эти данные поступают через веб-API, которые гарантируют, по крайней мере, их форму верхнего уровня, наприме…
11 дек '21 в 18:46
1 ответ

Не разрешать дополнительные свойства с помощью zod parse

Я использую для проверки. Похоже, если я определю схему, а затем parse() некоторый ввод с некоторыми дополнительными свойствами, которых нет даже в схеме, анализирует ввод как действительный, но просто удаляет эти ключи. import { z } from 'zod' cons…
20 дек '21 в 00:07
4 ответа

Как создать тип для типа файла `Record <string, File>` в zod

Я использую ввод type="file" и вместо сохранения данных в FileData Я использую простой объект и создал для него тип: Record<string, File>. Он работает хорошо, но когда я пытаюсь создать валидатор с zod - Не понимаю, как создать для него одноти…
0 ответов

Как разрешить определенные значения для динамического импорта значка?

Я создал динамический импорт для использования иконок из нашей библиотеки. Это выглядит примерно так: // icons file export { ArrowLeft } from './ArrowLeft'; export { ArrowRight } from './ArrowRight'; export { Checked } from './Checked'; export { Cir…
0 ответов

Как не разрешить неизвестные свойства после метода преобразования zod (TypeScript)

У меня есть функция API, которая, например, возвращает пользователя. Я хочу разобрать ответ сервера моему клиенту Userтип. Скажем, например, я хочу объединить имя и фамилию пользователя в одну строку для использования в моем клиентском коде. type Us…
07 фев '22 в 18:17
5 ответов

Почему Zod делает все поля моей схемы необязательными?

Я использую Zod в своем проекте API Express, TypeScript и Mongoose, и при попытке проверить мой пользовательский ввод по пользовательской схеме он возвращает конфликты типов: Argument of type '{ firstName?: string; lastName?: string; password?: stri…
19 фев '22 в 13:56
3 ответа

zod: установить min max после преобразования строки в число

У меня есть число или числовая строка, я хочу преобразовать ее в число и продолжить проверку с помощью .min() .max(), но это не работает, как я ожидал const numberValid = z.number().or(z.string().regex(/^\d+$/).transform(Number)); const positiveNumb…
09 фев '22 в 16:01
1 ответ

Как извлечь один тип из типа союза Zod?

Я использую Zod , и у меня есть массив, содержащий различные объекты, использующие union. После разбора я хочу перебрать каждый элемент и извлечь его «настоящий» тип/отрезать другие типы. При проверке определенных свойств объекта отлично работает сл…
01 мар '22 в 09:35
0 ответов

Как генерировать сообщения об ошибках с помощью Zod на разных языках

Я хочу генерировать сообщения проверки на разных языках. Я хотел создать собственное промежуточное ПО, которое добавляет атрибут lang к объекту запроса. И после установки языка я буду проверять свои запросы с помощью Zod. Я не могу отправить lang в …
02 апр '22 в 19:35
2 ответа

Как исключить определенное значение из вложенной схемы zod?

У меня есть следующая схема zod, и в некоторых случаях есть поле, которое я хотел бы полностью исключить из схемы. Я не могу просто сделать это необязательным. Я подозреваю, что есть способ сделать это напрямую с zod. Есть ли способ опустить поля ил…
09 май '22 в 13:34
0 ответов

Проверка формы React-hook - поддержка IsValid продолжает возвращать false

У меня довольно сложная форма с использованием React-Hook-Form. Я не могу заставить проверку работать правильно. В zodсхема проверки библиотеки такова: // For the form to be valid, // Atleast 2 goal forms, with min. 1 task export const schemaZod = z…
1 ответ

Как написать схему zod для глубоко вложенного объекта

У меня есть следующие данные: { "2022-06-01": { "09:00am": { "time_table_id": 1, "job_id": 4, "start_working_time": "09:00am", "end_working_time": "09:00pm", "work_duration": "12:00:00", "merchant_name": "Brands Outlet @ The Starling", "address2": "…
16 май '22 в 02:40
2 ответа

FormData все конвертирует в строковые четные массивы

const formData = new FormData() formData.append('choices', [1, 2, 3]) варианты, преобразованные в '1,2,3' И это отправляется на узел js, который не проходит проверку zod , потому что ожидает массив. то же самое происходит и с числами. почтовый запр…
06 апр '22 в 16:22
0 ответов

как использовать zod с validator.js

У меня есть приложение, использующее zod, но я хотел бы использовать некоторые методы из другой библиотеки (validator.js), в документации zod говорится: Проверьте validator.js, чтобы узнать о множестве других полезных функций проверки строк. Не увер…
12 мар '22 в 14:27