DEV version
May 20, 2026 · View on GitHub
$ npm install @ngxs/store@dev
To become next version
- Feature(store): add
registerNgxsPluginfunction for dynamic plugin registration #2396 - Feature(store): Support async/await syntax for
dispatch#2399 - Feature(store): Improve
createSelectorsignature type checking #2402 - Feature(store): Export
AsyncReturnTypefrom public API #2405 - Feature(store): Add
safePatchoperator #2408 - Feature(store): Add
updateItemsoperator #2413 - Feature(store): Add
removeItemsoperator #2414 - Feature(store): Expose
ɵgetTypedNgxsStateFactoryfor internal third-party usage #2426 - Feature(store): Error in dev mode when
selectSignalselector returns new reference with identical value #2441 - Feature(store): add
warnOnNewReferenceWithIdenticalValuetoNgxsDevelopmentOptions#2442 - Feature(storage-plugin): Support factory functions as
engineinKeyWithExplicitEngine#2444 - Fix(store): Cleanup observers once subjects complete #2401
- Fix(store): Skip state mutations when injector is destroyed mid-action #2406
- Fix(store): Warn when state is mutated after injector destruction #2407
- Fix(store): Report destroyed injector errors via
ErrorHandler#2409 - Fix(store): Include state path in
StateContextDestroyedErrorproduction message #2421 - Fix(store): Return original reference from
updateItemswhen no elements match #2424 - Fix(store): Silence
console.warninwithNgxsPendingTasksfor browser #2425 - Performance(store): Reduce operator allocations on action dispatch hot path #2435
- Performance(store): Replace
map/defaultIfEmpty/catchErrorwith manualObservableinconnectActionHandlers#2437 - Performance(store): Prevent
StateFactoryretention via unhandled error callback #2438 - Fix(storage-plugin): Guard against environments that do not provide
ngServerMode#2400 - Fix(storage-plugin): Improve dependency ranges for security fixes #2404
- Fix(storage-plugin): Treat missing version key as 0 when matching migrations #2422
21.0.0 2025-12-17
- Feature(store): Expose
AbortSignalon the state context #2244 - Fix(store): Guard against running state functions after injector is destroyed #2366 #2377
- Fix(store):
createPickSelectorshould not throw on unregistered states #2378 - Fix(store): Stop contributing to stability once app is stable #2379
- Fix(store): update action handler type to allow Observable
and Promise #2385 - Fix(store): Avoid unsubscribe when task is removed #2388
- Refactor(store): Clear
_stateson destroy to aid GC under high load #2365 - Refactor(store): Add
debugNametocomputedsignals inselectSignal#2370 - Fix(storage-plugin): Guard against
enginemay be falsy #2367 #2368 - Performance(storage-plugin): Replace closure-based action matcher with direct type comparison #2369
- Fix(router-plugin): Avoid redundant NGXS state updates for identical router snapshots #2372
20.1.0 2025-07-16
- Feature(store): Add
withNgxsNoopExecutionStrategy#2359
20.0.2 2025-06-19
- Revert(store): Revert
@Selectdecorator removal #2351
20.0.1 2025-06-19
- Fix(store): Add missing
detachto action director #2349
20.0.0 2025-06-16
- Build: Add Angular 20 support #2342
- Feature(store): Implement
ActionDirector#2329 - Feature(store): Add
lazyProviderutility #2326 - Feature(devtools-plugin): Add
serializeoption #2337 - Refactor: Replace
ngOnDestroywithDestroyRef#2289 - Refactor: Reduce RxJS dependency #2292
- Refactor: Pull less RxJS symbols #2309 #2310
- Refactor: Replace
ENVIRONMENT_INITIALIZER#2314 - Refactor: Replace
const enum#2335 - Fix(store): Add root store initializer guard #2278
- Fix(store): Reduce change detection cycles with pending tasks #2280
- Fix(store): Complete action results on destroy #2282
- Fix(store): Complete
dispatched$in internal actions #2285 - Fix(store): Stop contributing to stability once app is stable #2306
- Build(store): Use
ngServerModeto check whether we are in SSR #2287 - Build(storage-plugin): Use
ngServerModeto check whether we are in SSR #2288 - Refactor(form-plugin): Replace
takeUntilwithtakeUntilDestroyed#2283 - Refactor(router-plugin): Reduce RxJS depedency #2291
- Refactor(router-plugin): Change
@SelectortocreateSelector#2294 - CI(bundlemon): Upgrade to bundlemon v3 #2330
19.0.0 2024-12-3
- Build: Add Angular 19 support #2269
18.1.6 2024-11-20
- Refactor: Use field initializers for injectees #2258
- Refactor: Allow tree-shaking of dev-only code #2259
- Fix(store): Allow plain functions in
withNgxsPlugin#2255 - Fix(store): Run plugins in injection context #2256
- Fix(store): Setup unhandled error handler during NGXS initialization #2263
- Fix(websocket-plugin): Do not dispatch action when root injector is destroyed #2257
- Refactor(store): Replace
exhaustMap#2254 - Refactor(store): Tree-shake development options token #2260
- Performance(store): Prevent initializing state factory at feature levels #2261
- Revert: Revert router state changes #2264
18.1.5 2024-11-12
- Fix(store): Prevent writing to state once action handler is unsubscribed #2231
- Performance(store): Replace
instanceof Functionwithtypeof#2247 - Refactor(store): Use
Object.isas default equality check #2245 - Refactor(store): Tree-shake internal state tokens #2246
- Refactor(router-plugin): Mark selectors as pure #2248 (Note: reverted in 18.1.6)
- Refactor(storage-plugin): Mark engine tokens as pure #2249
18.1.4 2024-10-23
- Fix(store): Disallow nullable actions in
dispatch()#2221 - Fix(logger-plugin): Run
filterfunction in injection context #2236
18.1.3 2024-10-21
- Build: Copy LICENSE after build #2234
18.1.2 2024-10-21
- Fix(store): Allow selector utils usage within state class #2210
- Fix(store): Register feature plugins correctly #2228
- Fix(store): Memoize selectors which return NaN #2230
- Performance(store): Avoid going over states list every time action is dispatched #2219
- Refactor(store): Add action registry #2224
18.1.1 2024-08-06
18.1.0 2024-07-29
- Feature(store): Debounce
selectSignalby default #2190 - Feature(store): Add
withExperimentalNgxsPendingTasks#2186 - Fix(store): Decouple state signal updates from synchronous changes #2189
- Fix(schematics): remove local ng utils for schematics #2184
18.0.0 2024-06-10
- Feature(store): Improve action decorator types #2158
- Feature(store): Improve selector decorator types #2042
- Feature(store): Add preboot feature and recipe #2156
- Feature(store): Add
dispatchutility #2143 - Feature(store): Add signals utilities #2141
- Feature(store): Implement NGXS unhandled error handler #2137
- Feature(store): Export selector util types privately #2140
- Feature(store): Expose
withNgxsDevelopmentOptionsstandalone API #2134 - Feature(store): Add
selectSignal#2097 - Feature(store): Deprecate state
children#2136 - Feature(store): Deprecate
@Select#2135 - Fix(store): Do not rely on private token when checking whether zone is enabled #2151
- Fix(store): Update
ActionDefnew to returnany#2149 - Fix(store): Created maps properties should be enumerable #2150
- Fix(store): Remove
RequireAtLeastOnePropertyto make it simpler #2147 - Fix(store): Remove deprecated stuff #2119
- Fix(store): Remove
defaultsStateconfig property #2118 - Fix(store): Do not inject container state by default #2117
- Fix(store):
select,selectOnce,selectSnapshotshould only accept typed selector #2116 - Fix(store):
setStateandpatchStateshould both return<void>#2114 - Fix(store):
ofActionErroredshould returnActionCompletion#2112 - Fix(store): Enable throwing errors from selectors by default #2111
- Fix(store):
dispatchreturn observable should be<void>#2109 - Fix(store): Ensure features are initialized after root state #2083
- Fix(store): Log feature states added before store is initialized #2067
- Fix(store): Show error when state initialization order is invalid #2066, #2067
- Fix(store): Change
instanceof PromisetoisPromiseto allow any promisable object #2093 - Fix(store): Router Plugin - Expose
NGXS_ROUTER_PLUGIN_OPTIONSprivately #2037 - Performance(store): Select prop getter implementation only once #2107
- Performance(store): Improve compliant prop getter #2106
- Feature(schematics): Schematics support a project option and standalone detection #2089
- Feature(storage-plugin): Migrate to the property 'keys' #2108
- Feature(storage-plugin): Allow providing feature states #1994
- Feature(storage-plugin): Require explicit options when providing storage plugin #2100
- Fix(schematics): Dasherize the state and store file name #2090
- Fix(websocket-plugin):
WebSockettitle casing should be consistent #2115 - Refactor(store): Move metadata into internals #2062
- Refactor(store): Rely on
ngDevModeto be always defined #2138 - Refactor(schematics): Enhance schematics behavior for monorepos #2165
- Build: Flatten
.d.tsfiles #2131 - Build: Upgrade workspace to Angular 17 #2087
- Build: Add Angular 18 support #2168
3.8.2 2023-11-30
- Fix:
patchstate operator must handle existing nulls #2064 - Fix: Storage Plugin - Access local and session storages globals only in browser #2034
- Fix: Storage Plugin - Require only
getItemandsetItemon engines #2036 - Fix: Devtools Plugin - Do not re-enter Angular zone when resetting state #2038
- Performance: Tree-shake selectors validation errors #2020
- Build: Add Angular 17 support #2079
- Refactor: Replace
get type()withtype =in actions #2035 - Refactor: WebSocket Plugin - Get rid off
rxjs/webSocketand useWebSocketdirectly #2033
3.8.1 2023-05-16
- Fix: Check if state is injectable in JIT #1988
- Fix: State stream should always return latest value even if update is queued up #1995
- Fix: Ensure
StateFactorydoes not connect actions multiple times #2010 - Build: Add Angular 16 support #2008
- Refactor: Set singletons as "providedIn: root" #2015
3.8.0 2023-03-29
- Feature: Build packages in Ivy format #1945
- Feature: Add advanced selector utilities #1824
- Feature: Expose
ActionContextandActionStatus#1766 - Feature:
ofAction*methods should have strong types #1808 - Feature: Improve contextual type inference for state operators #1806 #1947
- Feature: Enable warning on unhandled actions #1870 #1951
- Feature: Router Plugin - Provide more actions and navigation timing option #1932
- Feature: Storage Plugin - Allow providing namespace for keys #1841
- Feature: Storage Plugin - Enable providing storage engine individually #1935
- Feature: Devtools Plugin - Add new options to the
NgxsDevtoolsOptionsinterface #1879 - Feature: Devtools Plugin - Add trace options to
NgxsDevtoolsOptions#1968 - Feature: Form Plugin - Allow
ngxsFormDebounceto be string #1972 - Performance: Tree-shake patch errors #1955
- Fix: Get descriptor explicitly when it's considered as a class property #1961
- Fix: Avoid delayed updates from state stream #1981
3.7.6 2022-11-23
- Performance: Run change detection once for all
Actionssubscribers once the stream emits #1939 - Fix: Use
isObservableto test whether actions return an observable #1925 - Fix: Call
ngxsOnChangeswhenever state changes (even through plugins) #1926 - Fix: Do not delegate errors to
ErrorHandlerif users catch them manually #1927 - Fix: Complete
Actionsstream once root view is removed #1933 - Fix: Storage Plugin - Do not skip deserialization for keys with dot notation #1924
3.7.5 2022-08-08
- Performance: Tree-shake no type on the action error #1858
- Fix: Give back control to
developmentModeconfig property #1878 - Fix: Do not use
refCount()since it makes selectable stream cold #1883 - Fix: Remove
?fromctxparameter of lifecycle hooks since they are never undefined #1889 - Fix: Avoid incorrectly ordered state observable events #1908
- Fix: Router Plugin - Prevent router overriding valid navigation #1907
- Fix: Storage Plugin - Provide more meaningful error message when the storage quota exceeds #1863
- Fix: Storage Plugin - Ensure the deserialization is not skipped for master key #1887
- Fix: Storage Plugin - Do not re-hydrate the whole state when the feature state is added #1887
- Fix: Devtools Plugin - Enable time-traveling for navigation actions #1868
- Fix: Form Plugin - Prevent actions infinite loop with multiple
ngxsFormdirectives #1890 - Fix: Do not check if the state class is injectable within the decorator since the
ɵprovwill not exist in JIT mode #1867 - Revert: revert select decorator changes and add deprecation note #1871
3.7.4 2022-06-09
- Build: include support for Angular 14 #1850
- Fix: Do not re-use the global
Storeinstance between different apps #1740 and #1804 (Note: reverted in v3.7.5) - Fix: Handle mixed async scenarios for action handlers #1762
- Fix: An action with cancelUncompleted enabled should unsubscribe before the next action handler is called #1763
- Fix: Do not run
Promise.thenwithin synchronous tests when decorating factory #1753 (Note: reverted in v3.7.5) - Fix: Provide
NoopNgxsExecutionStrategyexplicitly when the zone is nooped #1819 - Fix: Complete the state stream once the root view is removed #1830
- Fix: Be more explicit when checking if Angular is in test mode #1831, #1832
- Fix: Devtools Plugin - Do not connect to devtools when the plugin is disabled #1761
- Fix: Router Plugin - Cleanup subscriptions when the root view is destroyed #1754
- Fix: WebSocket Plugin - Cleanup subscriptions and close the connection when the root view is destroyed #1755
- Fix: Storage Plugin - Only restore state if key matches
addedStates#1746 - Fix: Forms Plugin - Do not destructure primitive types #1845
- Performance: Tree-shake errors and warnings #1732
- Performance: Tree-shake
ConfigValidator,HostEnvironmentandisAngularInTestMode#1741 - Performance: Tree-shake
SelectFactory#1744 - Performance: Tree-shake
deepFreeze#1819 - Performance: Run change detection once for all selectors when asynchronous action has been completed #1828
- Performance: Router Plugin - Tree-shake
isAngularInTestMode()#1738 - Performance: Tree-shake
isAngularInTestMode()#1739 - Performance: Storage Plugin - Tree-shake
console.*calls and expand error messages #1727 - CI: Bundlesize checks should run reliably #1812
3.7.3 2021-12-02
3.7.2 2021-05-18
- Chore: Add official support for Angular 12 #1752
- Fix: Allow to inject the
Storeinto the custom error handler #1708 - CI: Add angular 12 ivy integration test #1750
- CI: Add bundlesize check for the latest integration app #1710
3.7.1 2020-11-24
- Chore: Add official support for Angular 11 #1697
- Fix: Release NGXS resources when the root module gets destroyed #1669
- Fix: Resilient select if requested before state added #1701
- Fix: Deep merge options with default options #1686
- Fix: Storage Plugin - Resolve state name correctly if the state class has been provided #1670
- CI: Add angular 11 ivy integration test with Ivy on #1694 and off #1696
3.7.0 2020-09-09
- Feature: Throw an error when actions do not have a static type property #1625
- Feature: Storage Plugin - Add before and after serialize hooks #1513
- Feature: Logger Plugin - Add filter for Logger Plugin #1571
- Feature: Form Plugin - Add reset form action #1604
- Feature: Form Plugin -
ngxsFormClearOnDestroyshould allow the attribute with no value #1662 - Performance: Logger Plugin - Plugin should lazy inject the store once #1550
- Fix:
ofAction*methods should prevent passing anything except ofActionType#1616 - Fix: Remove the recent
@Selecttype safety check due to issues with private/protected properties #1623 - Fix: Actions are not canceled when any
Observablereturned by any handler is completed without emitting #1615 - Fix: Router Plugin - Update state after route successfully activates #1606
- Fix: HMR Plugin - Show error when use Angular Ivy with JIT mode #1607
- Fix: Logger Plugin - Filter out only
undefinedpayloads #1617 - Fix: Devtools Plugin - Actions with "action" property should not be logged as
#1628 - Test: Add integration tests for Angular 10 with Ivy #1641 and without Ivy #1647
- Test: Add integration tests for Angular 9 without Ivy #1649
- Build: Upgrade TS to 3.9.5 to ensure that no breaking changes get added #1626
- Build: Compile using Angular 9 #1596
NGXS-Labs
Data-plugin v3.0.0 2020-05-05
- Feature: Announced
@ngxs-labs/data
3.6.2 2020-02-07
- Fix: Handle empty array dispatch edge case #1521
- Fix: Fix regression after upgrade to angular.rc-11 #1526
3.6.1 2020-01-15
- Fix: Selectors should not be declaration order sensitive #1514
- Fix: Selectors should be deterministic based on store being used #1508
- Fix: Add support for using State Tokens in sub states #1509
- Fix: Optimize selector runtime binding #1510
- Build: Add router-plugin back to
Ivyintegration test #1506 - Build: Run ngcc synchronously to get
Ivybuild working again #1497
NGXS-Labs
Data-plugin v2.0.0 2019-12-16
- Feature: Support NGXS 3.6
BREAKING CHANGES
- Compatible only with NGXS 3.6+
- Now
patchState, setStatereturnvoid - No longer support options in
NgxsDataPluginModule.forRoot() - No longer support
@querydecorator
3.6.0 2019-12-11
- Feature: Add
ngxsOnChangeslifecycle hook #1389 - Feature: Expose
StateContextFactory,StateFactory#1325 - Feature: Improved type safety for children states #1388
- Feature: Improved type safety for
@Selectdecorator #1453 - Feature: Add
StateToken<T>construct #1436 - Feature: Warn about undecorated state class if Ivy is enabled in dev (both JIT/AOT) #1472, #1474
- Feature: Storage Plugin - Use state classes as keys #1380
- Feature: Form Plugin - Implement
propertyPathparameter in theUpdateFormValue#1215 - Feature: WebSocket Plugin - Implement
WebSocketConnectedaction #1371 - Feature: HMR Plugin - Add
hmrIsReloadedutility #1435 - Fix: Use generic
ModuleWithProviderstype for Ivy compatiblility #1469 - Fix: Explicit typings for state operators #1395, #1405
- Fix: Warn if the zone is not actual "NgZone" #1270
- Fix: Do not re-throw error to the global handler if custom is provided #1379
- Fix: Group
Actionssubscriptions to remove memory leak #1381 - Fix: Upgrade ng-packagr to fix Ivy issues #1397
- Fix: Router Plugin - resolve infinite redirects and browser hanging #1430
- Fix: Router Plugin - build compatibility with Angular 9 (Ivy) #1459
- Fix: Devtools Plugin - remove
NgxsModulefrom imports to ensure Ivy compatibility #1491 - Build: Add build integration test with Angular 9 (Ivy) #1278
- Build: Run SSR tests with cypress #1281
- Build: Add E2E tests for the Ivy integration #1492
BREAKING CHANGES
- If you are using
TypeScript 2.7andAngular 5you will need to update toTypeScript 2.8.1andAngular 6.1.0at a minimum. We were forced to drop support for these in order to provide support for Ivy. These versions are also no longer supported the Angular team either. This has not resulted in a major version change for NGXS due to the fact that it is not our API that has changed, rather a dependency.
NGXS-Labs
- Feature: announced @ngxs-labs/data
- Feature: announced @ngxs-labs/actions-executing
- Feature: announced @ngxs-labs/attach-action
3.5.1 2019-08-29
- Fix: Ensure that
@Action()is not usable with static methods #1203 - Fix: Router Plugin - normalize URL by stripping base href #1178
- Fix: Router Plugin - revert state back after "RouterCancel" is dispatched #1236
- Fix: Router Plugin - "includeHash" must be truthy requesting path #1265
- Fix: HMR Plugin - trigger ngOnDestroy for all components in app tree #1192
- Fix: HMR Plugin - remove
@angularclass/hmrpeer dependency #1205 - Fix: Forms Plugin - reduce
UpdateFormStatusaction dispatching #1217 - Fix: Logger Plugin - print next state even if error was thrown #1247
- Fix: Devtoos Plugin - send action to the dev tools even if error was thrown #1249
- Build: dtslint must use current version of TypeScript #1182
- Build: add bundle size checker for improved infrastructure #1199
- Build: configure typescript-eslint package #1201
- Build: add cypress for E2E testing #1258
NGXS-Labs
Dispatch Decorator v2.1.0
- Fix: remove
DispatchActionand unnecessary closures #252
Dispatch Decorator v2.0.0
- Build: prepare package for the Angular 8+ compatibility and support NGXS 3.5 #247
- Build: configure
cypressfor SSR and E2E testing #248 - Feat: implement
cancelUncompletedoption #250
Emitter-plugin v2.0.0
3.5.0 2019-07-22
- Feature: upgrade to support Angular 8 #1156
- Feature: selector option to disable supressing errors #1015, #1087
- Feature: expose NgxsModuleOptions as a named type #1031
- Feature: expose SelectorOptions decorator #1029, #1047
- Feature: expose StateClass as a named type #1042, #1070
- Feature: Router Plugin - add
RouterDataResolvedaction #1059 - Feature: WebSocket Plugin - add
WebSocketConnectionUpdatedaction #1094 - Performance: replace array
spreadwithslice#1066, #1071 - Fix: Life-cycle events not triggering in root state #1048
- Fix: Logger Plugin - replace
Object.entriesas it breaks IE11 #931 - Fix: Router Plugin - trigger navigation on the
QueryParamschange #924 - Fix: Router Plugin - redirect to the manually entered route #920, #1159
- Fix: Router Plugin - add
RouterDataResolvedto the unionRouterActiontype #1093 - Fix: Router Plugin - manual path check should not fail for SSR #1158
- Fix: HMR Plugin - remove old styles after reload #1001
- Fix: HMR Plugin - correct persistence state in runtime #1048
- Fix: HMR Plugin - does not properly restore state #1139
- Fix: Form Plugin - introduce conditional debounce #1061
- Fix: WebSocket Plugin - don't stop
WebSocketSubjectstream after dispatchingWebSocketDisconnected#1091 - Fix: Storage Plugin - undefined localStorage error during SSR #1119
- Build: CI - decouple build infrastructure from root package.json #1163
- Build: use
jestinternally for testing #1068
NGXS-Labs
Select-snapshot v1.0.0
- Feature: announced select-snapshot
Immer-adapter v3.0.0
- Feature: immutable state context decorator
- Feature: immutable selector decorator
- Feature: support immer v3.x
- Deprecated: produce operator
3.4.3 2019-03-14
- Feature: Add state defaults to UpdateState #956
- Fix: Router Plugin - serialize after Resolvers have run #895
- Fix: HMR Plugin - incorrect destruction of modules in hmr #908
- Fix: Logger Plugin - print action properties #879
3.4.2 2019-03-07
- Fix: Expose
ActionType, ActionOptionsinterfaces #873 - Fix: Router Plugin - add state selector with generic #894
- Fix: Initial state should not be overwritten by defaults #904
3.4.1 2019-03-04
- Fix: createSelector does not allow for function returning a type unioned with
nullorundefined#891 - Fix: Action is called multiple times when a module is called by multiple routes #888
- Fix: Expose
removeItemoperator #880
3.4.0 2019-02-28
- Feature: Support server-side rendering #698
- Feature: Enable state operator extensibility #635
- Feature: Add
ofActionCompletedaction handler #712 - Feature: Add
Hot Module Replacementplugin for manage states #707 - Feature: Add possible inheritance of state options #750
- Feature: Add new lifecycle hook
ngxsAfterBootstrap#753 - Feature: Add ability to change the Execution strategy (decouple from zone.js) #811
- Feature: Add state operators:
patch, updateItem, removeItem, insertItem, append, compose, iif#799 - Feature: WebSocket Plugin - Add
WebSocketDisconnectedaction to notify of disconnection #825 - Feature: Defining the default state before module initialization #791
- Fix: Expose
ActionCompletion#752 - Fix: Throw error when found duplicate state names #791
- Fix: Bind static context to the selector function #818
- Fix: WebSocket Plugin -
WebsocketMessageErrornotifies of errors #825 - Performance: improved reading the name of the state from the parameter #826
- Fix: Log group not closed on error #831
- Fix: Websocket Plugin - server/network error triggered close should dispatch WebSocketDisconnected #832
- Fix: Form Plugin - correct state synchronization with dirty flag #862
- Fix: Remove typings introduced since 3.3.4 that are incompatible with TS 2.7 #853
- Fix: Remove type usages introduced since 3.3.4 that are incompatible with NG 5 & TS 2.7 #854
NGXS-Labs
Emitter-plugin
3.3.4 2018-12-20
- Fix: Remove ref to TestBed to reduce bundle size #725
3.3.3 2018-12-16
- Fix: Silence console hints in tests #706
3.3.2 2018-12-04
- Fix: Remove compromised dependencies #684
- Fix: Add helper for enable development mode #674
- Fix: Support underscore in state name #663
3.3.1 2018-11-24
- Fix: Storage Plugin should handle 'undefined' string #671
- Feature: NGXS Schematics
NGXS-Labs
- Feature: Announced immer-adapter
- Feature: Announced dispatch-decorator
3.3.0 2018-11-19
- Feature: Support Angular 7, TypeScript 3.1 #615 (https://github.com/ngxs/store/issues/543)
- Feature: Add CLI for generate store #520
- Feature: Add strictContentSecurityPolicy compatibility rule #569
- Feature: Devtools plugin support for 'IMPORT_STATE' #507
- Feature: Form plugin - path to state can contain array #587
- Fix: Form plugin to accept form arrays #659
- Fix: Show warning when we usage development mode in production #627
- Fix: Storage Plugin should handle undefined #538
- Fix: Expose ofActionCanceled function #531
- Fix: Expose Websocket Plugin WebsocketMessageError action #504
NGXS-Labs
3.2.0 2018-07-15
- Feature: createSelector functions #484
- Fix: Expose RouterStateModel interface #445
- Fix: State not set correctly when duplicate key in path #459
- Fix: Action stream should return in Angular zone #456
3.1.4 2018-06-13
- Fix: Remove component reference from router plugin state #441
- Fix: Fix subscription firing twice #436
3.1.3 2018-04-06
3.1.2 2018-04-06
- Fix: Freeze conflicting issues with router
3.1.1 2018-04-06
- Fix: Freeze depedencies
3.1.0 2018-03-06
- Feature: Add development mode with freeze on state and actions #409
- Feature: Storage engine migrations #401
- Feature: Select combinations #51
- Feature: Snapshot select can use state class now #398
- Feature: Meta selectors #386
- Feature: Add ability to reset state
- Performance: Run actions outside of zones #383
- Fix: Dispatcher error propogation #376
- Fix: Add patchState restriction errors #371
- Fix: Remove error when loading same state multiple times #390
- Fix: Force route navigation to run in zones #393
- Fix: Selector function should still be usable as a function #398
- Fix: Memoize inner selector function #410
3.0.0/3.0.1 2018-05-04
- Chore: Upgrade to official Angular
3.0.0-rc.4 2018-05-02
- BREAKING: Rename completed to successful #349
- Feature: Add ability to disable logger #350
- Fix: Fix options not passed correctly to logger plugin #350
- Fix: Patch state mutating the original state #348
- Fix: Router plugin not working in prod #351
3.0.0-rc.3 2018-05-01
- BREAKING: Update websocket connect to recieve options object #341
- Feature: Consolidate action stream to single-source-of-truth #324
- Fix: Remove reconnection from websocket because of issues #341
- Fix: Enums causing prod build errors #345
- Fix: Router race case when using prod #345
3.0.0-rc.2 2018-04-27
3.0.0-rc.1 2018-04-12
- Fix: Rename
ofActionCompletetoofActionCompleted - Fix: Expose
ofActionErrored - Fix: Form Plugin Recursive Error
3.0.0-rc.0 2018-04-10
- Fix: Observable dispatch issues #235
- Fix: Websocket error when socket undefined
- Fix: Devtools not disabling
- Fix: Action Stream has too much exposed
- Chore: Loosen ng deps
- Chore: Upgrade to ng6/rx6
BREAKING
- feat(store): create action stream that shows the action lifecycle #255
To keep the same behavior switch from the ofAction operator to the ofActionDispatched operator
3.0.0-beta.0 2018-04-05
- BREAKING: Types are now required on actions
- Feature: Devtools can emit actions manually now
- Feature: Better integration w/ RX6
- Fix: Various websocket fixes
- Fix: Fixes for
ofAction - Chore: Rename Beta Feature
takeLasttocancelUncompleted
2.1.0-beta.9 2018-04-04
- Fix: Websocket and form errors caused by #212
2.1.0-beta.8 2018-04-04
- Fix: Minification issues #212
2.1.0-beta.7 2018-04-03
- Fix: Websocket plugin sending dupe objects
2.1.0-beta.6 2018-04-03
- Fix: Action types on objects not matching correctly
2.1.0-beta.5 2018-04-03
- Fix: Revert #206
- Fix: Websocket send message correctly
2.1.0-beta.4 2018-04-03
- Feature: Added
snapshotmethod to store to get raw value - Fix: Return
TfromselectSnapshot - Fix: Minification issues #206
- Fix: Websockets not emitting correctly
2.1.0-beta.3 2018-04-03
- Fix: Revert devtools trigger, due to circular
2.1.0-beta.2 2018-04-02
- Feature: Devtools can now trigger actions adhoc
- Fix: Websocket optional typekey
2.1.0-beta.1 2018-04-02
- Fix: Websocket pass options as partial
2.1.0-beta.0 2018-04-02
- Feature: Lifecycle events
- Feature: Forms plugin
- Fature: takeLast on actions
- Feature: Websocket plugin
- Feature: Snapshot selects
2.0.0 2018-03-27
First off, 2.0 is a huge change. I want to appologize to everyone about that but given all the community feedback and ideas, I really wanted to get these ideas in before it was too late and we were stuck on a API. I can promise that there will not be this big of a breaking change after this release in the future without first deprecation periods.
- Fix: Prevent null exceptions when accessing state before loaded
- Fix: Move action stream to subject
- Fix: Ensure metadata exists for a Selector #181
2.0.0-rc.24 2018-03-26
- Feature: Expose Init and Update Actions
- Fix: Devtools showing duplicate entries
- Fix: Storage plugin not populating for lazy loaded states
2.0.0-rc.23 2018-03-26
- Fix: Subscriptions firing twice
2.0.0-rc.22 2018-03-26
- BREAKING: Storage plugin fixes #154
- Fix: AoT Regression in Storage Plugin
2.0.0-rc.21 2018-03-25
- BREAKING: Plugins are now their own packages
- Fix: Subscribe firing multiple times
- Fix: Devtools only passing type and payload
2.0.0-rc.20 2018-03-23
- BREAKING: We moved the npm package from
ngxsto@ngxs/store! - Fix: devtools not sending payload #132
- Fix: better if condition for localstorage
2.0.0-rc.19 2018-03-23
- Feature: add overloading to select method in Store #130
- Fix: add empty options object, to prevent errors #131
- Fix: feature-module bugs #135
2.0.0-rc.18 2018-03-20
- Fix: Types on devtools
2.0.0-rc.17 2018-03-20
- Feature: Extend devtool options
- Feature: Jump to Action and Jump to State in Dev Tools
2.0.0-rc.16 2018-03-20
- Fix: Action stream not getting passed correct args, causing error in FF
2.0.0-rc.15 2018-03-20
- Fix: Lazy load issue introduced by #126
2.0.0-rc.14 2018-03-20
- Feature: NgxsLoggerPlugin log action payload if present
- Fix: Issues with feature states #126
2.0.0-rc.13 2018-03-20
- Feature: State can listen to action multiple times
2.0.0-rc.12 2018-03-20
- Fix: Dev tools showing wrong state
2.0.0-rc.11 2018-03-20
- BREAKING: Remove string selects, they re not type safe and bad idea
- Feature: Extend
store.selectto support class selectors - Feature: Expose state stream for users to subscribe to
- Fix: Fix Subscribe dispatching twice #104
2.0.0-rc.10 2018-03-19
- BREAKING: Rename
EventStreamtoActions - BREAKING: Rename plugins to have NGXS Prefix
2.0.0-rc.9 2018-03-18
- Feature: Memoized Selectors
- Fix: Default to empty object if no default passed
2.0.0-rc.8 2018-03-18
- Fix: Patch value not updating state
2.0.0-rc.7 2018-03-18
- Fix: Patch value patching wrong path
2.0.0-rc.6 2018-03-18
- Fix: topological sort
- Fix: defaults not working correctly if plain boolean/string/number
2.0.0-rc.5 2018-03-18
- Fix: patchState typings
2.0.0-rc.4 2018-03-18
- Fix: patchState typings
2.0.0-rc.3 2018-03-18
- Fix: Add typings for patchState
2.0.0-rc.2 2018-03-18
- Feature: Add
patchValueto make updating state easier
2.0.0-rc.1 2018-03-18
Bug Fixes
- Fix: Action
statearguments cached when destructured, switch togetState() - Fix: Class selectors not working with sub stores
- Fix: missing dispatch on state context interface
2.0.0-rc.0 2018-03-17
- Breaking:
@Store()decorator is now@State() - Breaking:
Ngxsservice is nowStore - Breaking: Stores should be now renamed to State. Before:
ZooStoreshould beZooState - Breaking:
@Mutationis gone in favor of just@Action - Breaking: Action's first argument is state context object,
{ state, setState } - Breaking: You use
setStateto set the state now rather than returning it in actions - Breaking: Events are now just called Actions
- Breaking:
ofEventis now calledofAction - Breaking: Plugins
nextfn now returns an observable - Breaking: Local Storage plugins removed Strategy in favor of passing your own engine
- Feature: Simplified APIs by removing Mutations, decreased boilerplate
- Feature: Added sub state capability
- Feature: Add
store.selectOnce()shortcut function - Feature: Better tpyings
- Feature: Add
dispatchfunction in state context for easier dispatching - Fix:
dispatch().subscribe()now works correctly - Fix: Promises now resolve correctly
1.5.3 2018-02-12
- Fix: Promises not emitting results
1.5.2 2018-02-12
- Fix: Devtools plugin not returning correct value
1.5.1 2018-02-11
- Feature: Add
sessionStoragestrategy to local storage plugin
1.5.0 2018-02-11
- Feature: Updated Plugin System
- Feature: Add generics to store
- Feature: Implement global error handling
- Fix: Improve DI for lazy loadedd stores
- Fix: Fix dev tools showing previous state
- Chore: Remove redux dev tools by default
1.4.8 2018-02-05
- Fix: Typo in return
1.4.7 2018-02-05
- Fix: Catch multiple stores being init'd
- Fix: Clone defaults to prevent mutations
1.4.6 2018-02-04
- Fix: Plugin injector errors
1.4.5 2018-02-04
- Fix: Store injector errors
- Fix: Empty local storage throwing null error
1.4.4 2018-02-04
- Fix: Stores injector errors
1.4.3 2018-02-04
- Fix: Stores init'd twice
1.4.2 2018-02-04
- Fix: Feature stores throwing errors
1.4.1 2018-02-04
- Fix: Misc type improvement
- Fix:
forRootplugins not working properly - Fix: LocalStorage plugin name spelling
1.4.0 2018-02-03
- Feature: Composition
1.3.0 2018-02-03
- Feature: Localstore plugin
- Fix: Better dev tools init
1.2.1 2018-02-03
- Fix: Dev tools init
- Fix: Plugins not recieving proper context
- Fix: Allow multiple forFeature
1.2.0 2018-02-03
- Feature: Dev Tools Integration
- Chore: Tests!
- Fix: Better builds
1.1.0 2018-02-03
- Fix: Export plugin interface
1.1.0 2018-02-03
- Feature: Plugins improvements
- Feature: Init event
- Feature: Logger plugin
1.0.4 2018-02-02
- Inital release!