- Allow
null
andundefined
inuseStore
function.
- Updates typedoc.
- Adds action response data to
addMiddleware
,runMiddleware
andonAction
.
- Allows deep inheritence.
- Upgrades esbuild.
- Upgrades biome.
- Makes types more explicit.
- Publish to jsr.
- Pass action error to devtools.
- Properly re-throw errors from async actions.
- Adds
getActionStatus
toexome/utils
.
- Properly handle errors in actions.
- Middleware now also returns error from actions.
- Adds version export to
unstableExomeDevtools
.
- Adds
unstableExomeDevtools
method toexome/devtools
package.
- Add
LOAD_STATE
middleware action after state was prefilled via loadState.
- Increase exome id length by 2 characters to lessen the birthday paradox.
- Use "try finally" for running "NEW" actions instead of "Promise.resolve()".
- Adds support for Solid.js.
- Adds support for Angular signals.
- Print circular store references in jest snapshots.
- Fixes jest snapshot serializer depth.
- Fixes
subscribe
method where it did not send store instance as argument.
- Fixes vue integration of
useStore
.
- Reorganizes imports;
- Removes
updateMap
; - Replaces
updateView
withupdateAll
; - Replaces
exomeDevtools
withexomeReduxDevtools
.
Please read the migration guide to ease the upgrade process.
v2 includes some breaking changes around subscriptions. It better reorganizes files and imports.
Here are changes that need to be made:
subscribe
is no longer in a separate import:
-import { subscribe } from "exome/subscribe";
+import { subscribe } from "exome";
saveState
,loadState
andregisterLoadable
is no longer part of root import:
-import { saveState, loadState, registerLoadable } from "exome";
+import { saveState, loadState, registerLoadable } from "exome/state";
GhostExome
is no longer part of root import:
-import { GhostExome } from "exome";
+import { GhostExome } from "exome/ghost";
-
updateMap
is no longer exposed (usesubscribe
,update
andupdateAll
to listen to changes or trigger them): -
updateView
is renamed toupdateAll
:
-import { updateView } from "exome";
+import { updateAll } from "exome";
exomeDevtools
is renamed toexomeReduxDevtools
:
-import { exomeDevtools } from "exome/devtools";
+import { exomeReduxDevtools } from "exome/devtools";
- Published to npm with new logo.
- Published to npm with provenance.
- Removes
peerDependencies
from package.json.
- Updates documentation;
- Cleans up published package.json file.
- Moves exported import files to
.mjs
file format.
- Adds support for Svelte.
- Performance improvements;
- Gets rid of Proxy usage as it was just an overhead without real benefits.
- Adds RXJS Observable support.
- Adds Deno support.
- Fixes broken redux devtools url.
- Fixes issue where getter get called before ready.
- Fixes rxjs compatibility issue when using
BehaviorSubject
insideExome
.
No actual changes as it's proven to be stable fo v1.
- Adds
lit
support.
Added new ReactiveController named StoreController
as part of lit v2.0.
- Arrow functions no longer trigger actions.
This was previously wrong as we only should trigger actions for prototype methods. It is useful to define arrow method to GET some data and that should NOT trigger action and re-render.
- Adds experimental
afterLoadState
method that triggers callback whenever Exome data was loaded vialoadState
.
- Adds new
onAction
method that triggers callback whenever specific action is called.
- Fixes
loadState
inability to load circular Exome instances.
- Fixes
saveState
snapshot of circular Exome instances.
saveState
andloadState
now works with minified class names;- Issue with state type but warning about store type in load-state (#8).
- Adds
registerLoadable
method that gathers all available Exomes that can be registered; - Removes 3rd argument for
loadState
method;
- loadState(target, state, { Person, Dog })
+ registerLoadable({ Person, Dog })
+ loadState(target, state)
- Adds
subscribe
method that allows to listen for changes in particular Exome instance;
- Fixes jest serializer output for
GhostExome
;
-
Adds
GhostExome
class;It is accepted as Exome instance, but will not update or call middleware.
- Fixes type declaration.
- Fixes vue export;
- Adds
setExomeId
method.
-
Adds Vue support.
Added
useStore
hook for Vue 3 composition api.