mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2024-11-22 17:46:56 +03:00
61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var assign = require('./utils/assign');
|
||
|
var compose = require('redux').compose;
|
||
|
|
||
|
function enhancer() {
|
||
|
var config = arguments[0] || {};
|
||
|
config.features = { pause: true, export: true, test: true };
|
||
|
config.type = 'redux';
|
||
|
if (config.autoPause === undefined) config.autoPause = true;
|
||
|
if (config.latency === undefined) config.latency = 500;
|
||
|
|
||
|
return function (createStore) {
|
||
|
return function (reducer, preloadedState, enhancer) {
|
||
|
var store = createStore(reducer, preloadedState, enhancer);
|
||
|
var origDispatch = store.dispatch;
|
||
|
|
||
|
var devTools = window.__REDUX_DEVTOOLS_EXTENSION__.connect(config);
|
||
|
devTools.init(store.getState());
|
||
|
|
||
|
var dispatch = function (action) {
|
||
|
var r = origDispatch(action);
|
||
|
devTools.send(action, store.getState());
|
||
|
return r;
|
||
|
};
|
||
|
|
||
|
if (Object.assign) return Object.assign(store, { dispatch: dispatch });
|
||
|
return assign(store, 'dispatch', dispatch);
|
||
|
};
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function composeWithEnhancer(config) {
|
||
|
return function () {
|
||
|
return compose(compose.apply(null, arguments), enhancer(config));
|
||
|
};
|
||
|
}
|
||
|
|
||
|
exports.__esModule = true;
|
||
|
exports.composeWithDevTools = function () {
|
||
|
if (typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__) {
|
||
|
if (arguments.length === 0) return enhancer();
|
||
|
if (typeof arguments[0] === 'object')
|
||
|
return composeWithEnhancer(arguments[0]);
|
||
|
return composeWithEnhancer().apply(null, arguments);
|
||
|
}
|
||
|
|
||
|
if (arguments.length === 0) return undefined;
|
||
|
if (typeof arguments[0] === 'object') return compose;
|
||
|
return compose.apply(null, arguments);
|
||
|
};
|
||
|
|
||
|
exports.devToolsEnhancer =
|
||
|
typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__
|
||
|
? enhancer
|
||
|
: function () {
|
||
|
return function (noop) {
|
||
|
return noop;
|
||
|
};
|
||
|
};
|