All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
0.18.0 (2022-08-27)
Note: Version bump only for package @simplux/platform
0.18.0-alpha.13 (2022-08-27)
- core: do not memoize selector args when selector throws (a982e61)
- react: upgrade to react 18 (604c3cc)
0.18.0-alpha.12 (2021-01-02)
- browser-router: fix
currentNavigationUrl
result if navigations are cancelled or rejected (d10124e) - router: fix
navigationIsInProgress
result if navigations are cancelled or rejected (cd249ae)
0.18.0-alpha.11 (2021-01-01)
- browser-router: support adding child routes (569bea2)
- router: add property to
onNavigateTo
args to indicate whether navigation is to child route (7982240) - router: support adding child routes (31ce3b7)
0.18.0-alpha.10 (2020-12-30)
- browser-router: support array parameters (6564a7a)
0.18.0-alpha.9 (2020-12-30)
- browser-router: allow
onNavigateTo
callbacks to cancel the navigation (65c42b5) - router: allow
onNavigateTo
callbacks to cancel the navigation (00e81e1)
- browser-router: memoize calls to
href
(36e470f)
0.18.0-alpha.8 (2020-12-27)
- router: notify
onNavigateTo
if navigation is cancelled (9989b1b)
0.18.0-alpha.7 (2020-12-27)
- browser-router: handle origin when navigating to URL (67ba0df)
- router: add route configuration option for intercepting navigation (fa4ca34)
- router: add selector to check if a navigation is in progress (4c047fa)
0.18.0-alpha.6 (2020-12-26)
- browser-router: fix error during activation (0f721f6)
0.18.0-alpha.5 (2020-12-26)
- browser-router: set url in location module when navigating by ID (bc2e2b6)
- react: call mocked selectors in
useSimplux
hook (c575d77) - testing: fix signature of
mockSelector
and add type tests (b5348f8)
- testing: add function to mock selectors (fded6f7)
0.18.0-alpha.4 (2020-12-26)
- core: do not throw if first argument for mutation is
undefined
(04ae60a)
0.18.0-alpha.3 (2020-12-26)
- browser-router: update browser location when navigating to route programmatically (5f8bd58)
- core: fix mutations from module scope getting lost during app initialization (81cc625)
- browser-router: add selector for checking if any route is active (0f7c644)
- router: add selector for checking if any route is active (9ff3914)
0.18.0-alpha.2 (2020-12-25)
- core: ensure effect functions have the correct name (4d6051e)
- core: fix falsy first mutation argument being swallowed (f5a0b70)
- browser-router: basic implementation for parsing templates and generating href strings (9e3b586)
- browser-router: listen to browser location changes and push history entries (fb54212)
- browser-router: navigate to route by URL (9e5a2dd)
- router: basic router implementation (c226d20)
- router: make parameters for
navigateTo
optional if possible (ea00dc5)
0.18.0-alpha.1 (2020-12-23)
Note: Version bump only for package @simplux/platform
0.18.0-alpha.0 (2020-12-23)
- core: allow mutations and selectors to have their own tsdoc comments (48a7a2c)
- core: ensure effect type only uses function signature of passed effect function (6f03c3e)
- add export specifications to package definitions to allow direct esm imports (05c11a2)
0.17.0 (2020-12-19)
- core: remove internal types and functions from public API definitions (c1e5adb)
0.16.1-alpha.0 (2020-12-19)
Note: Version bump only for package @simplux/platform
0.16.0 (2020-12-18)
- core: fix generic effects not working properly (f089ccd)
- recipes: update recipe for creating testable side effects to use new
createEffects
function (d678f1c)
0.15.0 (2020-12-18)
- core: add function for creating multiple named effects at once (042c93a)
0.14.0 (2020-09-30)
- core: handle arrays, sets, and maps properly in utility types "Mutable" and "Immutable" (43c266e)
- core: make
getState
and selector return values immutable (5efebfd) - recipes: add quickstart counter example (e979c48)
- recipes: add quickstart react example (58588dc)
0.13.0 (2020-04-13)
Note: Version bump only for package @simplux/platform
0.13.0-alpha.8 (2020-04-12)
- core: properly infer mutation types for immutable state type (ad26a85)
0.13.0-alpha.7 (2020-04-12)
- core: ensure state parameter for mutations is always mutable (3c13ee0)
- core: throw error if name is not provided when creating module (90087ed)
0.13.0-alpha.6 (2020-04-11)
Note: Version bump only for package @simplux/platform
0.13.0-alpha.5 (2020-04-11)
Note: Version bump only for package @simplux/platform
0.13.0-alpha.4 (2020-04-11)
Note: Version bump only for package @simplux/platform
0.13.0-alpha.3 (2020-04-11)
Note: Version bump only for package @simplux/platform
0.13.0-alpha.2 (2020-04-11)
Note: Version bump only for package @simplux/platform
0.13.0-alpha.1 (2020-04-11)
Note: Version bump only for package @simplux/platform
0.13.0-alpha.0 (2020-04-11)
- core: remove invariant checks from production bundle (cd66ab3)
0.12.0 (2020-04-05)
- core: add function
isSimpluxModule
to check if an object is a simplux module (da621f6) - core: add shorthand overload for for
createSimpluxModule
(baecf36) - react: add overload for
useSimplux
that selects a module's value with an inline selector (0f8d917) - react: add overload for
useSimplux
that selects a module's value without selector (8f7745e)
0.11.0 (2019-12-15)
- core: memoize selector results (c7e0787)
- recipes/advanced/communicating-between-modules: add new recipe (57dd921)
- recipes/react/using-hot-module-reloading: add recipe (13e09a9)
- recipes/react/using-lazy-loading-code-splitting: add recipe (2a06b58)
0.10.2 (2019-11-25)
Note: Version bump only for package @simplux/platform
0.10.2-alpha.0 (2019-11-25)
Note: Version bump only for package @simplux/platform
0.10.1 (2019-11-25)
- react: in provider only call module subscribers if the module's state has changed (2543897)
- react: reduce the number of times a component needs to resubscribe to the store (c76aa37)
0.10.0 (2019-11-24)
Note: Version bump only for package @simplux/platform
0.10.0-alpha.2 (2019-11-24)
Note: Version bump only for package @simplux/platform
0.10.0-alpha.1 (2019-11-24)
Note: Version bump only for package @simplux/platform
0.10.0-alpha.0 (2019-11-24)
- core: ensure immer reducer keeps working if invocation of reducer throws (f0e87eb)
- testing: clear state mocks when clearing all simplux mocks (faf7e11)
- core: add options argument to
subscribeToStateChanges
to allow skipping initial invocation (f096b98) - preset: add default preset package for simple installation (4b97dd8)
- preset-angular: add preset package for Angular (70ef486)
- preset-react: add preset package for React (94b5920)
- react: memoize selector result in
useSimplux
(4e7edcc) - react: replace
createSelectorHook
withuseSimplux
(7ae26b5) - testing: return a tuple of handler and clear function from
mockMutation
andmockEffect
(f20382c)
0.9.0 (2019-09-15)
- core: fix erroneous absolute reference (c7988d1)
- testing: add missing export (0f44b67)
- testing: properly clear effect mocks when clearing all mocks (1ae4c45)
- core: prevent accidentally dispatching a mutation from within another mutation (9644645)
- recipes: add recipe for "performing side effects" (fe62e80)
- recipes: add recipe for "testing my code that triggers side effects" (23ad484)
- recipes: add recipe for "testing my side effects" (67002f5)
- testing: allow mocking effects (4155efe)
0.9.0-alpha.0 (2019-09-15)
- core: prevent functions from being used as mutation arguments (945441e)
0.8.0 (2019-06-26)
Note: Version bump only for package @simplux/platform
0.8.0-alpha.2 (2019-06-26)
Note: Version bump only for package @simplux/platform
0.8.0-alpha.1 (2019-06-26)
Note: Version bump only for package @simplux/platform
0.8.0-alpha.0 (2019-06-26)
- core: add selectors functionality to core package (40a820f)
0.7.0 (2019-06-26)
- recipes: add recipe for "testing my Angular components" (34eb7a5)
- recipes: add recipe for "using simplux in my Angular application" (5697f84)
0.7.0-alpha.4 (2019-06-25)
- angular: add method to service base for observing all state changes (a847d68)
0.7.0-alpha.3 (2019-06-25)
Note: Version bump only for package @simplux/platform
0.7.0-alpha.2 (2019-06-25)
- angular: create package for using simplux in angular applications (00fb2a8)
0.7.0-alpha.1 (2019-06-24)
- core: ensure destructuring subscription does not conflict with type inference (592d8a2)
0.7.0-alpha.0 (2019-06-24)
- async: create extension package for adding asynchronous tasks to modules (af68996)
- core: return handler when subscribing to state changes to make testing simpler (257f2df)
- recipes: add recipe for "reacting to state changes" (b6ac371)
- testing: add mocking support for async tasks (4a0d417)
- react: fix incorrect signature for handlers in subscriber batching (69f20ab)
- core: provide previous state as second arg to state change listeners for easier state diffing (5561e63)
- recipes: add recipe for "creating non-trivial modules" (5b8ba4e)
- core-testing: fix multiple module mutation mocks interfering with each other (b19ba6a)
- core: add support for mocking module state (d546989)
- core: add support for writing mutable/immer-style mutations (4cc1af0)
- core: call subscriber immediately with current module state when subscribing (ed04c47)
- core-testing: add new function
mockModuleState
that allows mocking a module's state (7d8fd90) - observe: add observe extension package that allows subscribing to module changes with RxJS (f518bfa)
- recipes: add example for class component to "using simplux in my React application" (5ecc088)
- recipes: add recipe for "organizing my application state" (0dd07b5)
- recipes: add text version of "testing my React components that read and change state" (13b9b86)
- recipes: use explicit mocking functions instead of members in "test components using state" (463685b)
- core: optimize mutation performance by reducing number of string operations during evaluation (9f6fc54)
- react: add module name as property to selector hook (c6b1897)
- react-testing: use explicit functions instead of members for mocking selector hook states (bb954f8)
- core: add a unique type identifier to each mutation (7994d22)
- recipes: add example for using selector as factory in "testing components using state" (38dea9c)
- recipes: add example for using selector as factory in "using in React application" (9fb5955)
- recipes: add code for new react recipe "testing components using state" (a2e8e4e)
- selectors: allow calling selector as a factory to return a selector that just takes the state (062cd60)
- react: allow other extensions to add functionality to module selector hook (1184324)
- react-testing: add new extension package for testing with React (4721323)
- recipes: add recipe for "testing my code that uses mutations" (5c81615)
- core-testing: allow controlling how often a mutation will be mocked (aa340e7)
- core: ignore "accidental" mutation args that are HTML events (6776d7a)
- core-testing: add missing API exports (af4bbd8)
- recipes: add missing dependency for "composing mutations" (5279cbd)
- core: allow to specify order when registering module extension which allows composition (d352c95)
- core-testing: add new extension package "core-testing" (05c194e)
- recipes: add recipe for "composing selectors" (b7ef2f6)
- recipes: add recipe for "debugging with Redux DevTools" (d5fbe1f)
- recipes: add recipe for "using simplux in my React application" (cb2818d)
- recipes: improve "debugging with Redux DevTools" recipe (0de089b)
- recipes: add recipe for "composing mutations" (46cdb4b)
- core: ensure module state is set in redux store when module is created (cd53ac9)
- immer: ensure composing mutations works correctly (ecff6a0)
- recipes: add missing dependency to "simplifying state changes" recipe (8931146)
- recipes: fix "testing derived state" not working correctly in code sandbox (97fc902)
- core: freeze state during mutations in development mode (6fc9786)
- recipes: add recipe for "simplifying state changes" (7c77384)
- recipes: add recipe for "testing derived state" (61418c3)
- recipes: add recipe for "using simplux in my application that already uses Redux" (eb9e1f7)
- recipes: add text version of "computing derived state" recipe (8866d53)
- recipes: make "testing state changes" recipe simpler and add text version (d3b7029)
- selectors: ensure compatibility with TypeScript 3.3 (e920de9)
- core: ensure mutation type inference works with TypeScript 3.3.3 (4da619a)
- core: automatically create redux store for simple scenarios (0d2ac13)
- recipes: add text version of "getting started" recipe (24f21dc)
- recipes: simplify "getting started" recipe (aed2ca4)
- core: ensure mutation functions have the correct name (91ace5a)
- selectors: ensure selector functions have the correct name (a352bda)
- immer: add missing exports to public API (87d406a)
- react: add missing exports to public API (08226e9)
- selectors: add missing exports to public API (d8c3513)
- react: use react batching to notify module selector hooks (d83dc43)
- core: add missing export (4a04651)
- core: allow calling mutation as action creator (86325a7)
- core: allow subscribing to module state changes (510a0b2)
- core: pass module core to extensions (2604030)
- core: require external redux store to be provided (3586d98)
- recipes: add getting-started recipe (4a7ec45)
- selectors: throw when existing selector is declared again (8e81a71)
0.6.0-alpha.3 (2019-06-22)
- core-testing: fix multiple module mutation mocks interfering with each other (b19ba6a)
- core: add support for mocking module state (d546989)
- core: add support for writing mutable/immer-style mutations (4cc1af0)
- core: call subscriber immediately with current module state when subscribing (ed04c47)
- core-testing: add new function
mockModuleState
that allows mocking a module's state (7d8fd90) - observe: add observe extension package that allows subscribing to module changes with RxJS (f518bfa)
- recipes: add example for class component to "using simplux in my React application" (5ecc088)
- recipes: add recipe for "organizing my application state" (0dd07b5)
- recipes: add text version of "testing my React components that read and change state" (13b9b86)
- recipes: use explicit mocking functions instead of members in "test components using state" (463685b)
- core: optimize mutation performance by reducing number of string operations during evaluation (9f6fc54)
0.6.0-alpha.2 (2019-06-11)
- react: add module name as property to selector hook (c6b1897)
- react-testing: use explicit functions instead of members for mocking selector hook states (bb954f8)
0.6.0-alpha.1 (2019-06-11)
- core: add a unique type identifier to each mutation (7994d22)
- recipes: add example for using selector as factory in "testing components using state" (38dea9c)
- recipes: add example for using selector as factory in "using in React application" (9fb5955)
0.6.0-alpha.0 (2019-06-11)
- recipes: add code for new react recipe "testing components using state" (a2e8e4e)
- selectors: allow calling selector as a factory to return a selector that just takes the state (062cd60)
0.5.0 (2019-06-10)
- react: allow other extensions to add functionality to module selector hook (1184324)
- react-testing: add new extension package for testing with React (4721323)
- recipes: add recipe for "testing my code that uses mutations" (5c81615)
0.5.0-alpha.0 (2019-06-10)
- core-testing: allow controlling how often a mutation will be mocked (aa340e7)
0.4.3-alpha.0 (2019-06-10)
Note: Version bump only for package @simplux/platform
0.4.2 (2019-06-10)
Note: Version bump only for package @simplux/platform
0.4.1 (2019-06-10)
- core: ignore "accidental" mutation args that are HTML events (6776d7a)
- core-testing: add missing API exports (af4bbd8)
0.4.0 (2019-06-09)
- recipes: add missing dependency for "composing mutations" (5279cbd)
- core: allow to specify order when registering module extension which allows composition (d352c95)
- core-testing: add new extension package "core-testing" (05c194e)
- recipes: add recipe for "composing selectors" (b7ef2f6)
- recipes: add recipe for "debugging with Redux DevTools" (d5fbe1f)
- recipes: add recipe for "using simplux in my React application" (cb2818d)
- recipes: improve "debugging with Redux DevTools" recipe (0de089b)
0.3.0 (2019-06-09)
- recipes: add recipe for "composing mutations" (46cdb4b)
0.3.0-alpha.4 (2019-06-09)
- core: ensure module state is set in redux store when module is created (cd53ac9)
- immer: ensure composing mutations works correctly (ecff6a0)
- recipes: add missing dependency to "simplifying state changes" recipe (8931146)
- recipes: fix "testing derived state" not working correctly in code sandbox (97fc902)
- core: freeze state during mutations in development mode (6fc9786)
- recipes: add recipe for "simplifying state changes" (7c77384)
- recipes: add recipe for "testing derived state" (61418c3)
- recipes: add recipe for "using simplux in my application that already uses Redux" (eb9e1f7)
0.3.0-alpha.3 (2019-06-08)
- recipes: add text version of "computing derived state" recipe (8866d53)
- recipes: make "testing state changes" recipe simpler and add text version (d3b7029)
- selectors: ensure compatibility with TypeScript 3.3 (e920de9)
0.3.0-alpha.2 (2019-06-05)
- core: ensure mutation type inference works with TypeScript 3.3.3 (4da619a)
- core: automatically create redux store for simple scenarios (0d2ac13)
- recipes: add text version of "getting started" recipe (24f21dc)
- recipes: simplify "getting started" recipe (aed2ca4)
0.3.0-alpha.1 (2019-06-02)
- core: ensure mutation functions have the correct name (91ace5a)
- selectors: ensure selector functions have the correct name (a352bda)
0.3.0-alpha.0 (2019-06-02)
- immer: add missing exports to public API (87d406a)
- react: add missing exports to public API (08226e9)
- selectors: add missing exports to public API (d8c3513)
- react: use react batching to notify module selector hooks (d83dc43)
0.2.3-alpha.0 (2019-06-02)
Note: Version bump only for package @simplux/platform
0.2.2 (2019-06-02)
Note: Version bump only for package @simplux/platform
0.2.1 (2019-06-02)
Note: Version bump only for package @simplux/platform