JSPM

  • Created
  • Published
  • Downloads 66638
  • Score
    100M100P100Q162530F
  • License MIT

State and local storage syncing for @ngrx/store

Package Exports

  • ngrx-store-localstorage

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ngrx-store-localstorage) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

ngrx-store-localstorage

Simple syncing between ngrx store and local storage

Dependencies

ngrx-store-localstorage depends on @ngrx/store and Angular 2.

Usage

npm install ngrx-store-localstorage --save
  1. Import compose and combineReducers from @ngrx/store and @ngrx/core/compose
  2. Invoke the localStorageSync function after combineReducers, specifying the slices of state you would like to keep synced with local storage.
  3. Optionally specify whether to rehydrate this state from local storage as initialState on application bootstrap.
  4. Invoke composed function with application reducers as an argument to provideStore.
import {bootstrap} from '@angular/platform-browser-dynamic';
import {TodoApp} from './todo-app';
import {provideStore} from "@ngrx/store";
import {compose} from "@ngrx/core/compose";
import {localStorageSync} from "ngrx-store-localstorage";

export function main() {
  return bootstrap(TodoApp, [
    provideStore(
        compose(
            localStorageSync(['todos']),
            combineReducers
        )({todos, visibilityFilter})
    )
  ])
  .catch(err => console.error(err));
}

document.addEventListener('DOMContentLoaded', main);

API

localStorageSync(keys : string[], rehydrateState : boolean = false) : Reducer

Provide state (reducer) keys to sync with local storage. Optionally specify whether to rehydrate initialState from local storage on bootstrap. Returns a meta-reducer

Arguments

  • keys (string[]): State keys to sync with local storage
  • rehydrateState (boolean? = false): Pull initial state from local storage on startup