Skip to content

Commit

Permalink
Deprecate window.devToolsExtension
Browse files Browse the repository at this point in the history
Related to #220
  • Loading branch information
zalmoxisus committed Nov 25, 2018
1 parent ede072e commit 9f6c7aa
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 16 deletions.
2 changes: 1 addition & 1 deletion src/app/api/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ export function connect(preConfig) {
export function updateStore(stores) {
return function(newStore, instanceId) {
/* eslint-disable no-console */
console.warn('`devToolsExtension.updateStore` is deprecated, remove it and just use ' +
console.warn('`__REDUX_DEVTOOLS_EXTENSION__.updateStore` is deprecated, remove it and just use ' +
'`__REDUX_DEVTOOLS_EXTENSION_COMPOSE__` instead of the extension\'s store enhancer: ' +
'https://github.com/zalmoxisus/redux-devtools-extension#12-advanced-store-setup');
/* eslint-enable no-console */
Expand Down
2 changes: 1 addition & 1 deletion src/app/stores/windowStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default function configureStore(baseStore, position, preloadedState) {
} else {
enhancer = compose(
applyMiddleware(...middlewares),
window.devToolsExtension ? window.devToolsExtension() : noop => noop
window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : noop => noop
);
}
const store = createStore(rootReducer, preloadedState, enhancer);
Expand Down
2 changes: 1 addition & 1 deletion src/browser/extension/inject/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ chrome.runtime.sendMessage(window.devToolsExtensionID, { type: 'GET_OPTIONS' },
}

window.devToolsOptions = response.options;
window.devToolsExtension.notifyErrors();
window.__REDUX_DEVTOOLS_EXTENSION__.notifyErrors();
});
66 changes: 53 additions & 13 deletions src/browser/extension/inject/pageScript.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ function deprecateParam(oldParam, newParam) {
/* eslint-enable no-console */
}

const devToolsExtension = function(reducer, preloadedState, config) {
const __REDUX_DEVTOOLS_EXTENSION__ = function(reducer, preloadedState, config) {
/* eslint-disable no-param-reassign */
if (typeof reducer === 'object') {
config = reducer; reducer = undefined;
Expand Down Expand Up @@ -288,16 +288,56 @@ const devToolsExtension = function(reducer, preloadedState, config) {
};

// noinspection JSAnnotator
window.devToolsExtension = devToolsExtension;
window.devToolsExtension.open = openWindow;
window.devToolsExtension.updateStore = updateStore(stores);
window.devToolsExtension.notifyErrors = notifyErrors;
window.devToolsExtension.send = sendMessage;
window.devToolsExtension.listen = setListener;
window.devToolsExtension.connect = connect;
window.devToolsExtension.disconnect = disconnect;

window.__REDUX_DEVTOOLS_EXTENSION__ = window.devToolsExtension;
window.__REDUX_DEVTOOLS_EXTENSION__ = __REDUX_DEVTOOLS_EXTENSION__;
window.__REDUX_DEVTOOLS_EXTENSION__.open = openWindow;
window.__REDUX_DEVTOOLS_EXTENSION__.updateStore = updateStore(stores);
window.__REDUX_DEVTOOLS_EXTENSION__.notifyErrors = notifyErrors;
window.__REDUX_DEVTOOLS_EXTENSION__.send = sendMessage;
window.__REDUX_DEVTOOLS_EXTENSION__.listen = setListener;
window.__REDUX_DEVTOOLS_EXTENSION__.connect = connect;
window.__REDUX_DEVTOOLS_EXTENSION__.disconnect = disconnect;

// Deprecated
/* eslint-disable no-console */
let varNameDeprecatedWarned;
const varNameDeprecatedWarn = () => {
if (varNameDeprecatedWarned) return;
console.warn('`window.devToolsExtension` is deprecated in favor of `window.__REDUX_DEVTOOLS_EXTENSION__`, and will be removed in next version of Redux DevTools: https://git.io/fpEJZ');
varNameDeprecatedWarned = true;
};
/* eslint-enable no-console */
window.devToolsExtension = (...args) => {
varNameDeprecatedWarn();
return __REDUX_DEVTOOLS_EXTENSION__.apply(null, args);
};
window.devToolsExtension.open = (...args) => {
varNameDeprecatedWarn();
return openWindow.apply(null, args);
};
window.devToolsExtension.updateStore = (...args) => {
varNameDeprecatedWarn();
return updateStore(stores).apply(null, args);
};
window.devToolsExtension.notifyErrors = (...args) => {
varNameDeprecatedWarn();
return notifyErrors.apply(null, args);
};
window.devToolsExtension.send = (...args) => {
varNameDeprecatedWarn();
return sendMessage.apply(null, args);
};
window.devToolsExtension.listen = (...args) => {
varNameDeprecatedWarn();
return setListener.apply(null, args);
};
window.devToolsExtension.connect = (...args) => {
varNameDeprecatedWarn();
return connect.apply(null, args);
};
window.devToolsExtension.disconnect = (...args) => {
varNameDeprecatedWarn();
return disconnect.apply(null, args);
};

const preEnhancer = instanceId => next =>
(reducer, preloadedState, enhancer) => {
Expand All @@ -322,14 +362,14 @@ const extensionCompose = (config) => (...funcs) => {
return (...args) => {
const instanceId = generateId(config.instanceId);
return [preEnhancer(instanceId), ...funcs].reduceRight(
(composed, f) => f(composed), devToolsExtension({ ...config, instanceId })(...args)
(composed, f) => f(composed), __REDUX_DEVTOOLS_EXTENSION__({ ...config, instanceId })(...args)
);
};
};

window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ = (...funcs) => {
if (funcs.length === 0) {
return devToolsExtension();
return __REDUX_DEVTOOLS_EXTENSION__();
}
if (funcs.length === 1 && typeof funcs[0] === 'object') {
return extensionCompose(funcs[0]);
Expand Down

0 comments on commit 9f6c7aa

Please sign in to comment.