Size: a a a

2021 June 18

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
я год назад делал ресерч, апи сэмпла и гарда было не совместимо, но потом была убрана часть препятствий, надо будет повторить исследование)
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
самый большой головняк это оверлоады с отдельными аргументами, они прям сильно расходятся
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
у guard основной юз кейс это когда source используется для фильтрации, а данные передаются из clock в target

можно сказать, что это кейс для fn, но также можно сказать, что это признак необходимости в отдельном filterSource)
источник

DS

Dmitriy Shuleshov in ☄️ effector
Мне кажется абьюзить семпл - плохая идея.
1. Создать новый оператор который покроет возможности и Гарда и семпла, и через время если все пойдет как следует пометить их как замененные
2. Заабьюзить форвард?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
многое указывает на первое
источник

IK

Igor Kamyshev in ☄️ effector
relation({ source, clock, filter, fn, target })
источник

IK

Igor Kamyshev in ☄️ effector
Кстати, а почему fn принят, а не более понятное название? mapper? transformer?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
структура общего метода выглядит так. получается, что в ней два source, потому что данные которые нужны для target могут не совпадать с данными, которые нужны для фильтрации. это кстати объясняет существование filter: store, всё сходится
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
потому что это не маппер а скорее функция-комбинатор, в итоге ни один из терминов не соответствует явлению в полной мере, поэтому был выбран самый краткий в написании)
источник

IK

Igor Kamyshev in ☄️ effector
Занятно. Я помню меня это по началу очень путало (ну доку я не читаю, как уже говорил). Особенно сигнатура filter({ fn }) странная
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
crossover({
 clock: unit,
 filter: {
   source: store,
   fn
 },
 transform: {
   source: store,
   fn
 },
 target: unit
})
источник

IK

Igor Kamyshev in ☄️ effector
источник

TG

Timofey Goncharov in ☄️ effector
reflect не кидает ts ошибку, если через него биндятся несуществующие пропсы. это так должно быть?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
ограничения:
• в корне только clock, то есть source только вложенный
• target обязательный, как и все остальные поля на всех уровнях
• сокращённых форм filter и transform нет
• возвращает void
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
я просто давно уже над этим думаю) на пазл начал складываться впервые
источник

IK

Igor Kamyshev in ☄️ effector
А почему нельзя опустить фильтр или трансформ?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
крайне тяжелая типизация
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
из-за структурной типизации тайпскрипту резко дурнеет от развилок с несовпадающими опциональными полями
источник

IK

Igor Kamyshev in ☄️ effector
Угу. Было бы здорово тогда сделать отдельные операторы с такой же сигнатурой для этих случаев. Чтобы привычка вырабатывалась.
источник