Skip to content

Releases: effector/effector

effector 23.2.2

23 May 12:47
Compare
Choose a tag to compare
  • Fix types for createEffect and attach in factories with generics (issue #1069). Cases like this now works correctly:
function createModel<T>() {
  const $data = createStore<T | null>(null)
  const fx = createEffect(() => null as T)
  sample({clock: fx.doneData, target: $data})
}

effector-react 23.2.1

23 May 12:46
Compare
Choose a tag to compare
  • Fix types for useUnit([fx]) with effect with custom error (PR #1070)

effector 23.2.1

24 Apr 06:12
Compare
Choose a tag to compare

effector 23.2.0

07 Feb 09:45
Compare
Choose a tag to compare
  • Improve type validation for derived stores in fork
  • Add missed runtime validation for allSettled calls with derived units. This case was labeled as a type error, but was forgotten in runtime.

effector-react 23.2.0

07 Feb 09:45
Compare
Choose a tag to compare
  • Make Gate.open and Gate.close EventCallable to allow users to call it in tests

effector 23.1.0

19 Dec 06:55
Compare
Choose a tag to compare
  • Support arbitary callbacks in scopeBind. Allows library developers to create better APIs in a way that is Fork API - compatible. #1016
  • Remove deprecated types for already removed $store.map overload. #1029

effector-react 23.1.0

19 Dec 06:55
Compare
Choose a tag to compare
  • Skip enumerable prototype-inherited properties in useUnit(shape). Some badly-written polyfills might add such properties to built-ins like Array. #1023
  • Add missing depreaction tag to the one of useEvent overloads. #1030
  • Add useProvidedScope low level API for library developers. #1033

effector-react 23.0.1

01 Dec 09:43
Compare
Choose a tag to compare
  • Fix warning about useStore appeared in useList (PR #1022)

effector Spacewatch 23.0.0

28 Nov 13:53
Compare
Choose a tag to compare
Effector Spacewatch 23

Improvements

  • Introduce EventCallable, StoreWritable and UnitTargetable types to allow users to express and understand what could be updated or called directly and what could not. Now createStore returns StoreWritable which can be passed to sample target and combine returns Store which will show type and runtime error (PR #966)
  • Improve error messages: now it includes unit names and locations so it will be useful to find errors in raw server logs or bundles with disabled source maps. To enable locations in errors use addLoc: true in babel-plugin. Usually the one wanted to enable this in development only so addLoc plugin option is disabled by default (PR #1015)
  • Add batch option to createWatch (PR #850)
  • Add @withease/factories to babel-plugin defaults (PR #995)
  • Add all patronum modules to babel-plugin defaults (PR #996)
  • Rename greedy to batch in sample. greedy: true becomes batch: false which is a better mental model for what this option do (PR #972)
  • Unify programmatic sid insertion in merge and restore (PR #969)
  • Allow domain to be used in attach without parent effect (PR #895)

Bug fixes

  • Fix nullable type of .reinit, now it exists in StoreWritable and not exists in Store (PR #966)
  • Fix serialization of ignored stores (PR #903)
  • Fix race condition in parallel effect calls (PR #849)
  • Fix scope reading its initial values from current (not initial) store value (PR #909)
  • Fix duplicated combine calls (PR #916)
  • Fix reading stale value in attach (PR #1011)

Deprecations and removed apis

  • Deprecate undefined as magical value to skip store updates, use skipVoid: true option in combine and map to enable old behavior. Getting rid of that edge case will allow to introduce lazy computations (issue #920)
  • Deprecate forward and guard in favor of sample (PR #913)
  • Deprecate reactSsr option in babel-plugin (PR #910)
  • Deprecate onlyChanges option in serialize (PR #907)
  • Deprecate raw object {[fx.sid]: Function} in fork handlers (PR #973)
  • Deprecate .watch with second argument in favor of sample (PR #906)
  • Deprecate .getType() - relic from ancient times which exists for redux compatibility (PR #899)
  • Deprecate effector/babel-plugin-react (PR #948)
  • Deprecate fork(domain) and hydrate(domain) - this api existed for traking units in scopes when Fork API was introduced, but starting from 22 version this is done automatically and domain is no longer required for that (PR #950)

  • Throw error when unit called from a pure function (PR #905)
  • Throw error when derived event is called (PR #905)
  • Throw error when fn in $store.map(fn) returns undefined in the initialization (issue #828)

  • Remove flow typings. In the beginning, the effector was written in flow, but now only types remained and they were extremely outdated due to lack of expertise in the technology. The flow community maintains bindings in a separate repository. (PR #912)
  • Remove deprecated effector/fork module (PR #842)
  • Remove deprecated createStoreObject alias for combine (PR #908)
  • Remove deprecated .thru method (PR #843)
  • Remove deprecated second argument with state from $store.map (PR #846)
  • Remove deprecated restore($store) support. This was an obscure feature when store is passed to method and returned without changes as is (PR #1018)

Performance

  • 10% performance improvement (PR #1014)

See also our migration guide

effector-vue 23.0.0

28 Nov 13:26
Compare
Choose a tag to compare
  • Add useUnit hook (PR #1003)
  • Make bindings isomorphic
  • Deprecate effector-vue/ssr in favor of isomorphic hooks (PR #1005)
  • Remove obsolete deprecated apis $watchAsStore and $store (PR #1004)