You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.8 KiB
60 lines
1.8 KiB
'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; |
|
}; |
|
};
|
|
|