Effector 23.4 is here! 🎉 Atlas
We're excited to launch Effector 23.4, our latest minor updated.
This thread will cover the key improvements, new features, Hot Module Replacement support, and debug improvements.
github.com/effector/effector…
🧵 [1/]
🧠 Runtime DX
– sample({ name }) is now supported everywhere
– Use trace: true in patronum/debug to see named sample links 🔍
This makes reactive flows much easier to debug at scale.
💡 Type Improvements
– split() types got a major cleanup
(massive thanks to @den_churbanov 💪)
– domain.createStore now supports skipVoid
Much safer and more ergonomic code in complex apps.
🔁 Babel / SWC Plugin gets HMR support!
Big thanks to @movpushmov & @kireevmp for pushing this forward 🔥
Plus:
– transformLegacyDomainMethods toggle
– forceScope can now be auto-set in React hooks
– effector-action is now part of default factories
– Support for tagged templates
With Ease Magazine does have RSS now 🗞️
withease.pages.dev/feed.rss
withease/i18next 23.2.0 has been released with a couple of new features:
🆕 store $language contains current language
🆕 effect changeLanguageFx allows changing it
🆕 integration creator now supports async i18next instances
eslint-plugin-effector 0.14.0 has released with a new rule, some fixes, and support of Node.js 21 ✅
github.com/effector/eslint-p…
effector ☄️ retweeted
The long-awaited release v0.12 Talat Noi is finally released 🎉
farfetched.pages.dev/release…
For a complete overview of all the changes and enhancements, check out our detailed changelog.
Everything you need to know about Effector 23, all in one place:
changelog.effector.dev/
🧵 [End of Thread]
That wraps up the major updates!
We've covered significant changes, but there's more to explore. We strongly recommend reviewing the full changelog for a detailed understanding before upgrading your projects.
Thank you for following along, and happy coding with Effector 23!
`undefined` no longer results in skipped store updates.
Want the old behavior back? Simply enable it with `skipVoid: true`. Also, note that if `$store.map(fn)` returns undefined during app initialization, it will now throw an error.
🧵 [8/]
You can read more about function purity in the our Glossary:
effector.dev/en/explanation/…
🧵 [7/]
Stricter Function Purity
Calling events or effects from functions deemed 'pure' by Effector now triggers runtime errors. Additionally, triggering derived events also results in runtime errors.
🧵 [6/]
The `previous` argument in `.map()` removed
We've made a substantial change: the second argument in `$store.map` is now removed. This shift means that derived stores no longer maintain an internal state, leading to cleaner and more predictable state management.
🧵 [5/]
/fork and /scope modules are obsolete
The `effector/fork` module has been removed and its functionality is now fully integrated into the core effector package.
Plus, `effector-react/scope` is no longer required as all hooks in the main package support scope operations.
🧵 [4/]
New Type Definitions
Say hello to `EventCallable`, `StoreWritable`, `UnitTargetable`. These new types distinctly mark writable stores and callable events, streamlining your use of derived units by clearly defining their intended interactions.
🧵 [3/]
Effector 23 is here! 🎉 Spacewatch
We're excited to launch Effector 23, our latest major update. This thread will cover the key improvements, new features, and essential deprecations.
Let's get into what Effector Spacewatch brings to your business logic management.
🧵 [1/]
Replying to @withease
@withease/redux 1.0.0
New library to simplify migration from Redux to Effector.
Read a detailed guide on how to handle such a migration right here 👇
withease.pages.dev/magazine/…












