Size: a a a

2020 August 17

c⁣

createStore<🦉>... in ☄️ effector
я хочу сделать комбинаторные валидаторы
источник

AO

Aleksandr Osipov in ☄️ effector
тут нужен опыт человека преисполнившегося формами, понаступавшего на все мыслимые грабли
источник

AO

Aleksandr Osipov in ☄️ effector
createStore<🦉> ⁣
я хочу сделать комбинаторные валидаторы
а это как?
источник

c⁣

createStore<🦉>... in ☄️ effector
мы сделали филды и формы отдельными штуками, чтобы можно было их складывать вместе
источник

c⁣

createStore<🦉>... in ☄️ effector
Aleksandr Osipov
а это как?
формат пока не понял, но идея в том, чтобы сложить вместе несколько валидаторов и получить более сложный включащий в себя свойства всех

const email = all(
 string(),
 length({ min: 3, max: 10 }),
 exist(‘@‘, { min: 1, max: 1 })
)
источник

AA

Alexey Anarion in ☄️ effector
createStore<🦉> ⁣
формат пока не понял, но идея в том, чтобы сложить вместе несколько валидаторов и получить более сложный включащий в себя свойства всех

const email = all(
 string(),
 length({ min: 3, max: 10 }),
 exist(‘@‘, { min: 1, max: 1 })
)
и типа чтобы можно было комбайнить all(all()) сколь угодно глубоко?
источник

AO

Aleksandr Osipov in ☄️ effector
createStore<🦉> ⁣
формат пока не понял, но идея в том, чтобы сложить вместе несколько валидаторов и получить более сложный включащий в себя свойства всех

const email = all(
 string(),
 length({ min: 3, max: 10 }),
 exist(‘@‘, { min: 1, max: 1 })
)
ну вроде что-то типа такого?
export function combineValidators(validator: Validator | Validator[]): Validator {
   const validators = Array.isArray(validator) ? validator : [validator]
   return value => validators.reduce((error: string | null, validator) => {
       return error ?? validator(value)
   }, null)
}
источник

AO

Aleksandr Osipov in ☄️ effector
это у меня так
источник

AA

Alexey Anarion in ☄️ effector
Aleksandr Osipov
ну вроде что-то типа такого?
export function combineValidators(validator: Validator | Validator[]): Validator {
   const validators = Array.isArray(validator) ? validator : [validator]
   return value => validators.reduce((error: string | null, validator) => {
       return error ?? validator(value)
   }, null)
}
ага, у меня идентично по сути сделано
источник

AA

Alexey Anarion in ☄️ effector
но это просто массив валидаторов, а сова как я понял хочет сделать что то вроде joi или yup, если я правильно понял
источник

c⁣

createStore<🦉>... in ☄️ effector
Aleksandr Osipov
ну вроде что-то типа такого?
export function combineValidators(validator: Validator | Validator[]): Validator {
   const validators = Array.isArray(validator) ? validator : [validator]
   return value => validators.reduce((error: string | null, validator) => {
       return error ?? validator(value)
   }, null)
}
вроде того
источник

c⁣

createStore<🦉>... in ☄️ effector
Alexey Anarion
и типа чтобы можно было комбайнить all(all()) сколь угодно глубоко?
да
источник

c⁣

createStore<🦉>... in ☄️ effector
и аналогичный подход с формами как есть
источник

c⁣

createStore<🦉>... in ☄️ effector
и сюда же нужно как-то вытащить валидацию полей на уровень форм
источник

AO

Aleksandr Osipov in ☄️ effector
createStore<🦉> ⁣
и аналогичный подход с формами как есть
вот это уже интереснее, чтобы можно было композировать формы
источник

c⁣

createStore<🦉>... in ☄️ effector
чтобы понимать валидна форма или только предупреждение
источник

c⁣

createStore<🦉>... in ☄️ effector
и прочее
источник

c⁣

createStore<🦉>... in ☄️ effector
и с динамическими формами ровно тоже самое
источник

c⁣

createStore<🦉>... in ☄️ effector
задаешь место, где оно может быть динамичным и в какой вариативности
источник

AO

Aleksandr Osipov in ☄️ effector
а у вас есть уже такое - с композицией?
источник