Skip to content

Releases: zalmoxisus/remote-redux-devtools

v0.5.0

06 Oct 13:41
Compare
Choose a tag to compare

Pausing and locking features

Read the post for details about why and how to use them.

pausing

Added composeWithDevtools method

Instead of

import { createStore, applyMiddleware, compose } from 'redux';
import devToolsEnhancer from 'remote-redux-devtools';

const store = createStore(reducer, /* preloadedState, */ compose(
    applyMiddleware(...middleware),
    devToolsEnhancer()
));

Now you should use:

  import { createStore, applyMiddleware } from 'redux';
  import { composeWithDevTools } from 'remote-redux-devtools';

  const store = createStore(reducer, /* preloadedState, */ composeWithDevTools(
    applyMiddleware(...middleware),
    // other store enhancers if any
  ));

or with parameters:

  import { createStore, applyMiddleware } from 'redux';
  import { composeWithDevTools } from 'remote-redux-devtools';

  const composeEnhancers = composeWithDevTools({ realtime: true, port: 8000 });
  const store = composeWithDevTools(reducer, /* preloadedState, */ composeEnhancers(
    applyMiddleware(...middleware),
    // other store enhancers if any
  ));

As the result DevTools.updateStore is deprecated.

New options

  • shouldRecordChanges (boolean) - if specified as false, it will not record the changes till clicking on Start recording button. Default is true.
  • pauseActionType (string) - if specified, whenever clicking on Pause recording button and there are actions in the history log, will add this action type. If not specified, will commit when paused. Default is @@PAUSED.
  • shouldStartLocked (boolean) - if specified as true, it will not allow any non-monitor actions to be dispatched till clicking on Unlock changes button. Default is false.
  • shouldHotReload boolean - if set to false, will not recompute the states on hot reloading (or on replacing the reducers). Default to true.

v0.4.9

24 Sep 18:36
Compare
Choose a tag to compare

v0.4.8

11 Sep 17:05
Compare
Choose a tag to compare
  • Better handling of reconnections.
  • Log errors instead of warning (don't show YellowBoxes on React Native).

v0.4.7

31 Aug 08:17
Compare
Choose a tag to compare

New options to sanitize states and actions:

  • stateSanitizer - function which takes state object and index as arguments, and should return state object back.
  • actionSanitizer - function which takes action object and id number as arguments, and should return action object back.

Example of usage:

export default function configureStore(initialState) {
  // Note: passing enhancer as last argument requires redux@>=3.1.0
  const store = createStore(
    rootReducer,
    initialState,
    devTools({
      actionSanitizer: (action) => (
       action.type === 'FILE_DOWNLOAD_SUCCESS' && action.data ?
       { ...action, data: '<<LONG_BLOB>>' } : action
      ),
      stateSanitizer: (state) => state.data ? { ...state, data: '<<LONG_BLOB>>' } : state
    })
  );
  return store;
}

Downgraded socketcluster-client to fix Windows issues.

v0.4.1

04 Aug 14:40
Compare
Choose a tag to compare

Added updateStore method, which you can use in case you have other enhancer / middlewares. So, when remote dispatching, they will be applied.

Usage:

import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import devTools from 'remote-redux-devtools';
import reducer from '../reducers';

export default function configureStore(initialState) {
  const enhancer = compose(
    applyMiddleware(thunk),
    devTools()
  );
  // Note: passing enhancer as last argument requires redux@>=3.1.0
  const store = createStore(reducer, initialState, enhancer);
  // If you have other enhancers & middlewares
  // update the store after creating / changing to allow devTools to use them
  devTools.updateStore(store);
  return store;
}

v0.4.0

01 Aug 09:31
Compare
Choose a tag to compare
  • Optimization: State is not relayed twice when starting monitoring [#22]
  • Remote actions are evaluated now on the client side with the ability to pass custom actionCreators:

vzq00o0buq

Use the latest remotedev-app to get it work.

v0.3.4

20 Jul 08:25
Compare
Choose a tag to compare
  • Get correctly localhost for React Native (#31)
  • Catch errors on devtools instrumentation only when needed (notes)

v0.3.3

21 May 14:21
Compare
Choose a tag to compare

Catch and send exceptions occurred in the application

Added sendOnError parameter, which can be set to:

  • 1: catch all exceptions from the application by binding to console.error, using window.onerror for browser and ErrorUtils for React Native, and send a @@remotedev/ERROR action with all the details.
  • 2: catch only exceptions from reducers.

Will send logs even when realtime is set to false, but with post requests in this case without opening a connection.

v0.3.2

04 May 19:05
Compare
Choose a tag to compare

Fixes:

  • Don't skip onStart, onStop and onSend actions from payload.
  • Don't throw on fetch errors.

v0.3.1

02 May 11:14
Compare
Choose a tag to compare

Send data to the remote monitor with post requests (without opening a socket connection)

Check the demo here

The configuration will be like:

export default function configureStore(initialState) {
 return createStore(
    rootReducer,
    initialState,
    devTools({
      name: 'Android app', realtime: false,
      hostname: 'your-host.com', port: 8000,
      sendOn: 'SOME_ACTION_ERROR' // or array: ['LOGIN_ERROR', 'LOGOUT_ERROR']
      })
  );
}

Requires remotedev-server@^0.0.9.

Support secure connections

Added secure parameter, specifies whether to use https protocol for post requests and wss for socket connections. Requires remotedev-server@^0.0.8.