Hot Reloading

Easy Peasy supports hot reloading - i.e. being able to dynamically update your model at development time whilst maintaining the current state of your application. This can lead to a much improved developer experience.

In order to configure your application to allow hot reloading of your Easy Peasy store you will need to do the following:

// src/store/index.js

import { createStore } from "easy-peasy";
import model from "./model";

const store = createStore(model);

// Wrapping dev only code like this normally gets stripped out by bundlers
// such as Webpack when creating a production build.
if (process.env.NODE_ENV === "development") {
  if (module.hot) {
    module.hot.accept("./model", () => {
      store.reconfigure(model);  // 👈 Here is the magic
    });
  }
}

export default store;

Note how you can call the store's reconfigure method in order to reconfigure the store with your updated model. The existing state will be maintained.

You can view a demo repository configured for hot reloading here.