mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2025-07-27 00:19:55 +03:00
stash
This commit is contained in:
parent
1c5cc0604f
commit
4448ac51ce
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
"root": true,
|
||||||
"extends": "eslint-config-airbnb",
|
"extends": "eslint-config-airbnb",
|
||||||
"globals": {
|
"globals": {
|
||||||
"chrome": true,
|
"chrome": true,
|
||||||
|
|
|
@ -49,7 +49,7 @@ gulp.task('webpack:dev', (callback) => {
|
||||||
callback();
|
callback();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('views:dev', () => {
|
gulp.task('views:dev', (done) => {
|
||||||
gulp
|
gulp
|
||||||
.src('./src/browser/views/*.pug')
|
.src('./src/browser/views/*.pug')
|
||||||
.pipe(
|
.pipe(
|
||||||
|
@ -58,14 +58,16 @@ gulp.task('views:dev', () => {
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.pipe(gulp.dest('./dev'));
|
.pipe(gulp.dest('./dev'));
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('copy:dev', () => {
|
gulp.task('copy:dev', (done) => {
|
||||||
gulp
|
gulp
|
||||||
.src('./src/browser/extension/manifest.json')
|
.src('./src/browser/extension/manifest.json')
|
||||||
.pipe(rename('manifest.json'))
|
.pipe(rename('manifest.json'))
|
||||||
.pipe(gulp.dest('./dev'));
|
.pipe(gulp.dest('./dev'));
|
||||||
copy('./dev');
|
copy('./dev');
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -121,18 +123,20 @@ gulp.task('copy:build:extension', (done) => {
|
||||||
* compress task
|
* compress task
|
||||||
*/
|
*/
|
||||||
|
|
||||||
gulp.task('compress:extension', () => {
|
gulp.task('compress:extension', (done) => {
|
||||||
gulp
|
gulp
|
||||||
.src('build/extension/**')
|
.src('build/extension/**')
|
||||||
.pipe(zip('extension.zip'))
|
.pipe(zip('extension.zip'))
|
||||||
.pipe(gulp.dest('./build'));
|
.pipe(gulp.dest('./build'));
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('compress:firefox', () => {
|
gulp.task('compress:firefox', (done) => {
|
||||||
gulp
|
gulp
|
||||||
.src('build/firefox/**')
|
.src('build/firefox/**')
|
||||||
.pipe(zip('firefox.zip'))
|
.pipe(zip('firefox.zip'))
|
||||||
.pipe(gulp.dest('./build'));
|
.pipe(gulp.dest('./build'));
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -187,7 +191,7 @@ gulp.task('copy:build:firefox', gulp.series('build:extension', (done) => {
|
||||||
'!./build/extension/js/redux-devtools-extension.js',
|
'!./build/extension/js/redux-devtools-extension.js',
|
||||||
])
|
])
|
||||||
.pipe(gulp.dest('./build/firefox'))
|
.pipe(gulp.dest('./build/firefox'))
|
||||||
.on('finish', function () {
|
.on('finish', function() {
|
||||||
gulp
|
gulp
|
||||||
.src('./src/browser/firefox/manifest.json')
|
.src('./src/browser/firefox/manifest.json')
|
||||||
.pipe(gulp.dest('./build/firefox'));
|
.pipe(gulp.dest('./build/firefox'));
|
||||||
|
|
|
@ -31,8 +31,9 @@ export function isFiltered(action, localFilter) {
|
||||||
if (
|
if (
|
||||||
noFiltersApplied(localFilter) ||
|
noFiltersApplied(localFilter) ||
|
||||||
(typeof action !== 'string' && typeof action.type.match !== 'function')
|
(typeof action !== 'string' && typeof action.type.match !== 'function')
|
||||||
)
|
) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
const { whitelist, blacklist } = localFilter || window.devToolsOptions || {};
|
const { whitelist, blacklist } = localFilter || window.devToolsOptions || {};
|
||||||
const actionType = action.type || action;
|
const actionType = action.type || action;
|
||||||
|
@ -67,8 +68,9 @@ export function filterState(
|
||||||
nextActionId,
|
nextActionId,
|
||||||
predicate
|
predicate
|
||||||
) {
|
) {
|
||||||
if (type === 'ACTION')
|
if (type === 'ACTION') {
|
||||||
return !stateSanitizer ? state : stateSanitizer(state, nextActionId - 1);
|
return !stateSanitizer ? state : stateSanitizer(state, nextActionId - 1);
|
||||||
|
}
|
||||||
else if (type !== 'STATE') return state;
|
else if (type !== 'STATE') return state;
|
||||||
|
|
||||||
if (predicate || !noFiltersApplied(localFilter)) {
|
if (predicate || !noFiltersApplied(localFilter)) {
|
||||||
|
@ -151,8 +153,9 @@ export function startingFrom(
|
||||||
if (
|
if (
|
||||||
(predicate && !predicate(currState.state, currAction.action)) ||
|
(predicate && !predicate(currState.state, currAction.action)) ||
|
||||||
isFiltered(currAction.action, localFilter)
|
isFiltered(currAction.action, localFilter)
|
||||||
)
|
) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
filteredStagedActionIds.push(key);
|
filteredStagedActionIds.push(key);
|
||||||
if (i < index) continue;
|
if (i < index) continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,9 +3,10 @@ import jsan from 'jsan';
|
||||||
import seralizeImmutable from 'remotedev-serialize/immutable/serialize';
|
import seralizeImmutable from 'remotedev-serialize/immutable/serialize';
|
||||||
|
|
||||||
function deprecate(param) {
|
function deprecate(param) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
console.warn(
|
console.warn(
|
||||||
`\`${param}\` parameter for Redux DevTools Extension is deprecated. Use \`serialize\` parameter instead: https://github.com/zalmoxisus/redux-devtools-extension/releases/tag/v2.12.1`
|
`\`${param}\` parameter for Redux DevTools Extension is deprecated. Use \`serialize\` parameter instead: https://github.com/zalmoxisus/redux-devtools-extension/releases/tag/v2.12.1`
|
||||||
); // eslint-disable-line
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function importState(
|
export default function importState(
|
||||||
|
@ -34,8 +35,9 @@ export default function importState(
|
||||||
let preloadedState;
|
let preloadedState;
|
||||||
let nextLiftedState = parse(state);
|
let nextLiftedState = parse(state);
|
||||||
if (nextLiftedState.payload) {
|
if (nextLiftedState.payload) {
|
||||||
if (nextLiftedState.preloadedState)
|
if (nextLiftedState.preloadedState) {
|
||||||
preloadedState = parse(nextLiftedState.preloadedState);
|
preloadedState = parse(nextLiftedState.preloadedState);
|
||||||
|
}
|
||||||
nextLiftedState = parse(nextLiftedState.payload);
|
nextLiftedState = parse(nextLiftedState.payload);
|
||||||
}
|
}
|
||||||
if (deserializeState) {
|
if (deserializeState) {
|
||||||
|
|
|
@ -21,8 +21,9 @@ function tryCatchStringify(obj) {
|
||||||
return JSON.stringify(obj);
|
return JSON.stringify(obj);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
if (process.env.NODE_ENV !== 'production')
|
if (process.env.NODE_ENV !== 'production') {
|
||||||
console.log('Failed to stringify', err);
|
console.log('Failed to stringify', err);
|
||||||
|
}
|
||||||
/* eslint-enable no-console */
|
/* eslint-enable no-console */
|
||||||
return jsan.stringify(obj, windowReplacer, null, {
|
return jsan.stringify(obj, windowReplacer, null, {
|
||||||
circular: '[CIRCULAR]',
|
circular: '[CIRCULAR]',
|
||||||
|
@ -71,8 +72,9 @@ export function getSeralizeParameter(config, param) {
|
||||||
: immutableSerializer.options,
|
: immutableSerializer.options,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (!serialize.replacer && !serialize.reviver)
|
if (!serialize.replacer && !serialize.reviver) {
|
||||||
return { options: serialize.options };
|
return { options: serialize.options };
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
replacer: serialize.replacer,
|
replacer: serialize.replacer,
|
||||||
reviver: serialize.reviver,
|
reviver: serialize.reviver,
|
||||||
|
@ -82,9 +84,10 @@ export function getSeralizeParameter(config, param) {
|
||||||
|
|
||||||
const value = config[param];
|
const value = config[param];
|
||||||
if (typeof value === 'undefined') return undefined;
|
if (typeof value === 'undefined') return undefined;
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
console.warn(
|
console.warn(
|
||||||
`\`${param}\` parameter for Redux DevTools Extension is deprecated. Use \`serialize\` parameter instead: https://github.com/zalmoxisus/redux-devtools-extension/releases/tag/v2.12.1`
|
`\`${param}\` parameter for Redux DevTools Extension is deprecated. Use \`serialize\` parameter instead: https://github.com/zalmoxisus/redux-devtools-extension/releases/tag/v2.12.1`
|
||||||
); // eslint-disable-line
|
);
|
||||||
|
|
||||||
if (typeof serializeState === 'boolean') return { options: value };
|
if (typeof serializeState === 'boolean') return { options: value };
|
||||||
if (typeof serializeState === 'function') return { replacer: value };
|
if (typeof serializeState === 'function') return { replacer: value };
|
||||||
|
@ -133,8 +136,9 @@ function getStackTrace(config, toExcludeFromTrace) {
|
||||||
function amendActionType(action, config, toExcludeFromTrace) {
|
function amendActionType(action, config, toExcludeFromTrace) {
|
||||||
let timestamp = Date.now();
|
let timestamp = Date.now();
|
||||||
let stack = getStackTrace(config, toExcludeFromTrace);
|
let stack = getStackTrace(config, toExcludeFromTrace);
|
||||||
if (typeof action === 'string')
|
if (typeof action === 'string') {
|
||||||
return { action: { type: action }, timestamp, stack };
|
return { action: { type: action }, timestamp, stack };
|
||||||
|
}
|
||||||
if (!action.type) return { action: { type: 'update' }, timestamp, stack };
|
if (!action.type) return { action: { type: 'update' }, timestamp, stack };
|
||||||
if (action.action) return stack ? { stack, ...action } : action;
|
if (action.action) return stack ? { stack, ...action } : action;
|
||||||
return { action, timestamp, stack };
|
return { action, timestamp, stack };
|
||||||
|
@ -187,17 +191,19 @@ export function sendMessage(action, state, config, instanceId, name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleMessages(event) {
|
function handleMessages(event) {
|
||||||
if (process.env.BABEL_ENV !== 'test' && (!event || event.source !== window))
|
if (process.env.BABEL_ENV !== 'test' && (!event || event.source !== window)) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
const message = event.data;
|
const message = event.data;
|
||||||
if (!message || message.source !== '@devtools-extension') return;
|
if (!message || message.source !== '@devtools-extension') return;
|
||||||
Object.keys(listeners).forEach((id) => {
|
Object.keys(listeners).forEach((id) => {
|
||||||
if (message.id && id !== message.id) return;
|
if (message.id && id !== message.id) return;
|
||||||
if (typeof listeners[id] === 'function') listeners[id](message);
|
if (typeof listeners[id] === 'function') listeners[id](message);
|
||||||
else
|
else {
|
||||||
listeners[id].forEach((fn) => {
|
listeners[id].forEach((fn) => {
|
||||||
fn(message);
|
fn(message);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,9 +235,10 @@ export function connect(preConfig) {
|
||||||
const config = preConfig || {};
|
const config = preConfig || {};
|
||||||
const id = generateId(config.instanceId);
|
const id = generateId(config.instanceId);
|
||||||
if (!config.instanceId) config.instanceId = id;
|
if (!config.instanceId) config.instanceId = id;
|
||||||
if (!config.name)
|
if (!config.name) {
|
||||||
config.name =
|
config.name =
|
||||||
document.title && id === 1 ? document.title : `Instance ${id}`;
|
document.title && id === 1 ? document.title : `Instance ${id}`;
|
||||||
|
}
|
||||||
if (config.serialize) config.serialize = getSeralizeParameter(config);
|
if (config.serialize) config.serialize = getSeralizeParameter(config);
|
||||||
const actionCreators = config.actionCreators || {};
|
const actionCreators = config.actionCreators || {};
|
||||||
const latency = config.latency;
|
const latency = config.latency;
|
||||||
|
@ -306,8 +313,9 @@ export function connect(preConfig) {
|
||||||
timestamp: Date.now(),
|
timestamp: Date.now(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
} else if (config.actionSanitizer)
|
} else if (config.actionSanitizer) {
|
||||||
amendedAction = config.actionSanitizer(action);
|
amendedAction = config.actionSanitizer(action);
|
||||||
|
}
|
||||||
amendedAction = amendActionType(amendedAction, config, send);
|
amendedAction = amendActionType(amendedAction, config, send);
|
||||||
if (latency) {
|
if (latency) {
|
||||||
delayedActions.push(amendedAction);
|
delayedActions.push(amendedAction);
|
||||||
|
@ -364,7 +372,7 @@ export function connect(preConfig) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function updateStore(stores) {
|
export function updateStore(stores) {
|
||||||
return function (newStore, instanceId) {
|
return function(newStore, instanceId) {
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
console.warn(
|
console.warn(
|
||||||
'`__REDUX_DEVTOOLS_EXTENSION__.updateStore` is deprecated, remove it and just use ' +
|
'`__REDUX_DEVTOOLS_EXTENSION__.updateStore` is deprecated, remove it and just use ' +
|
||||||
|
|
|
@ -3,7 +3,7 @@ let lastTime = 0;
|
||||||
|
|
||||||
function createExpBackoffTimer(step) {
|
function createExpBackoffTimer(step) {
|
||||||
let count = 1;
|
let count = 1;
|
||||||
return function (reset) {
|
return function(reset) {
|
||||||
// Reset call
|
// Reset call
|
||||||
if (reset) {
|
if (reset) {
|
||||||
count = 1;
|
count = 1;
|
||||||
|
@ -34,8 +34,9 @@ function catchErrors(e) {
|
||||||
if (
|
if (
|
||||||
(window.devToolsOptions && !window.devToolsOptions.shouldCatchErrors) ||
|
(window.devToolsOptions && !window.devToolsOptions.shouldCatchErrors) ||
|
||||||
e.timeStamp - lastTime < nextErrorTimeout()
|
e.timeStamp - lastTime < nextErrorTimeout()
|
||||||
)
|
) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
lastTime = e.timeStamp;
|
lastTime = e.timeStamp;
|
||||||
nextErrorTimeout(true);
|
nextErrorTimeout(true);
|
||||||
postError(e.message);
|
postError(e.message);
|
||||||
|
|
|
@ -31,8 +31,9 @@ export default class Monitor {
|
||||||
isPaused = () => {
|
isPaused = () => {
|
||||||
if (this.paused) {
|
if (this.paused) {
|
||||||
if (this.lastAction !== 'BLOCKED') {
|
if (this.lastAction !== 'BLOCKED') {
|
||||||
if (!window.__REDUX_DEVTOOLS_EXTENSION_LOCKED__)
|
if (!window.__REDUX_DEVTOOLS_EXTENSION_LOCKED__) {
|
||||||
this.lastAction = 'BLOCKED';
|
this.lastAction = 'BLOCKED';
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -28,7 +28,7 @@ export function getReport(reportId, tabId, instanceId) {
|
||||||
instanceId: `${tabId}/${instanceId}`,
|
instanceId: `${tabId}/${instanceId}`,
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(function (err) {
|
.catch(function(err) {
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
console.warn(err);
|
console.warn(err);
|
||||||
/* eslint-enable no-console */
|
/* eslint-enable no-console */
|
||||||
|
|
|
@ -9,8 +9,9 @@ export default function openDevToolsWindow(position) {
|
||||||
lastPosition = position;
|
lastPosition = position;
|
||||||
} else {
|
} else {
|
||||||
let params = { focused: true };
|
let params = { focused: true };
|
||||||
if (lastPosition !== position && position !== 'devtools-panel')
|
if (lastPosition !== position && position !== 'devtools-panel') {
|
||||||
params = { ...params, ...customOptions };
|
params = { ...params, ...customOptions };
|
||||||
|
}
|
||||||
chrome.windows.update(windows[position], params, () => {
|
chrome.windows.update(windows[position], params, () => {
|
||||||
lastPosition = null;
|
lastPosition = null;
|
||||||
if (chrome.runtime.lastError) callback();
|
if (chrome.runtime.lastError) callback();
|
||||||
|
|
|
@ -76,7 +76,7 @@ if (window.isElectron) {
|
||||||
}
|
}
|
||||||
// Avoid error: chrome.runtime.sendMessage is not supported responseCallback
|
// Avoid error: chrome.runtime.sendMessage is not supported responseCallback
|
||||||
const originSendMessage = chrome.runtime.sendMessage;
|
const originSendMessage = chrome.runtime.sendMessage;
|
||||||
chrome.runtime.sendMessage = function () {
|
chrome.runtime.sendMessage = function() {
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
return originSendMessage(...arguments);
|
return originSendMessage(...arguments);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ function createPanel(url) {
|
||||||
'Redux',
|
'Redux',
|
||||||
'img/logo/scalable.png',
|
'img/logo/scalable.png',
|
||||||
url,
|
url,
|
||||||
function () {}
|
function() {}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,8 +93,9 @@ function tryCatch(fn, args) {
|
||||||
}
|
}
|
||||||
handleDisconnect();
|
handleDisconnect();
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
if (process.env.NODE_ENV !== 'production')
|
if (process.env.NODE_ENV !== 'production') {
|
||||||
console.error('Failed to send message', err);
|
console.error('Failed to send message', err);
|
||||||
|
}
|
||||||
/* eslint-enable no-console */
|
/* eslint-enable no-console */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,8 +113,9 @@ function send(message) {
|
||||||
// Resend messages from the page to the background script
|
// Resend messages from the page to the background script
|
||||||
function handleMessages(event) {
|
function handleMessages(event) {
|
||||||
if (!isAllowed()) return;
|
if (!isAllowed()) return;
|
||||||
if (!event || event.source !== window || typeof event.data !== 'object')
|
if (!event || event.source !== window || typeof event.data !== 'object') {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
const message = event.data;
|
const message = event.data;
|
||||||
if (message.source !== pageSource) return;
|
if (message.source !== pageSource) return;
|
||||||
if (message.type === 'DISCONNECT') {
|
if (message.type === 'DISCONNECT') {
|
||||||
|
|
|
@ -8,7 +8,7 @@ require('./pageScript');
|
||||||
chrome.runtime.sendMessage(
|
chrome.runtime.sendMessage(
|
||||||
window.devToolsExtensionID,
|
window.devToolsExtensionID,
|
||||||
{ type: 'GET_OPTIONS' },
|
{ type: 'GET_OPTIONS' },
|
||||||
function (response) {
|
function(response) {
|
||||||
if (!response.options.inject) {
|
if (!response.options.inject) {
|
||||||
const urls = response.options.urls.split('\n').filter(Boolean).join('|');
|
const urls = response.options.urls.split('\n').filter(Boolean).join('|');
|
||||||
if (!location.href.match(new RegExp(urls))) return;
|
if (!location.href.match(new RegExp(urls))) return;
|
||||||
|
|
|
@ -38,7 +38,7 @@ function deprecateParam(oldParam, newParam) {
|
||||||
/* eslint-enable no-console */
|
/* eslint-enable no-console */
|
||||||
}
|
}
|
||||||
|
|
||||||
const __REDUX_DEVTOOLS_EXTENSION__ = function (
|
const __REDUX_DEVTOOLS_EXTENSION__ = function(
|
||||||
reducer,
|
reducer,
|
||||||
preloadedState,
|
preloadedState,
|
||||||
config
|
config
|
||||||
|
@ -164,8 +164,9 @@ const __REDUX_DEVTOOLS_EXTENSION__ = function (
|
||||||
isFiltered(action, localFilter) ||
|
isFiltered(action, localFilter) ||
|
||||||
(predicate &&
|
(predicate &&
|
||||||
!predicate(computedStates[computedStates.length - 1].state, action))
|
!predicate(computedStates[computedStates.length - 1].state, action))
|
||||||
)
|
) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
const state =
|
const state =
|
||||||
liftedState.computedStates[liftedState.computedStates.length - 1].state;
|
liftedState.computedStates[liftedState.computedStates.length - 1].state;
|
||||||
relay(
|
relay(
|
||||||
|
@ -233,8 +234,9 @@ const __REDUX_DEVTOOLS_EXTENSION__ = function (
|
||||||
if (
|
if (
|
||||||
!features.jump &&
|
!features.jump &&
|
||||||
(type === 'JUMP_TO_STATE' || type === 'JUMP_TO_ACTION')
|
(type === 'JUMP_TO_STATE' || type === 'JUMP_TO_ACTION')
|
||||||
)
|
) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
if (!features.skip && type === 'TOGGLE_ACTION') return;
|
if (!features.skip && type === 'TOGGLE_ACTION') return;
|
||||||
if (!features.reorder && type === 'REORDER_ACTION') return;
|
if (!features.reorder && type === 'REORDER_ACTION') return;
|
||||||
if (!features.import && type === 'IMPORT_STATE') return;
|
if (!features.import && type === 'IMPORT_STATE') return;
|
||||||
|
@ -297,8 +299,9 @@ const __REDUX_DEVTOOLS_EXTENSION__ = function (
|
||||||
const filteredActionIds = []; // simple circular buffer of non-excluded actions with fixed maxAge-1 length
|
const filteredActionIds = []; // simple circular buffer of non-excluded actions with fixed maxAge-1 length
|
||||||
const getMaxAge = (liftedAction, liftedState) => {
|
const getMaxAge = (liftedAction, liftedState) => {
|
||||||
let m = (config && config.maxAge) || window.devToolsOptions.maxAge || 50;
|
let m = (config && config.maxAge) || window.devToolsOptions.maxAge || 50;
|
||||||
if (!liftedAction || noFiltersApplied(localFilter) || !liftedAction.action)
|
if (!liftedAction || noFiltersApplied(localFilter) || !liftedAction.action) {
|
||||||
return m;
|
return m;
|
||||||
|
}
|
||||||
if (!maxAge || maxAge < m) maxAge = m; // it can be modified in process on options page
|
if (!maxAge || maxAge < m) maxAge = m; // it can be modified in process on options page
|
||||||
if (isFiltered(liftedAction.action, localFilter)) {
|
if (isFiltered(liftedAction.action, localFilter)) {
|
||||||
// TODO: check also predicate && !predicate(state, action) with current state
|
// TODO: check also predicate && !predicate(state, action) with current state
|
||||||
|
@ -347,8 +350,9 @@ const __REDUX_DEVTOOLS_EXTENSION__ = function (
|
||||||
relayAction();
|
relayAction();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (monitor.isPaused() || monitor.isLocked() || monitor.isTimeTraveling())
|
if (monitor.isPaused() || monitor.isLocked() || monitor.isTimeTraveling()) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
const liftedState = store.liftedStore.getState();
|
const liftedState = store.liftedStore.getState();
|
||||||
if (
|
if (
|
||||||
errorOccurred &&
|
errorOccurred &&
|
||||||
|
@ -361,8 +365,9 @@ const __REDUX_DEVTOOLS_EXTENSION__ = function (
|
||||||
|
|
||||||
const enhance = () => (next) => {
|
const enhance = () => (next) => {
|
||||||
return (reducer_, initialState_, enhancer_) => {
|
return (reducer_, initialState_, enhancer_) => {
|
||||||
if (!isAllowed(window.devToolsOptions))
|
if (!isAllowed(window.devToolsOptions)) {
|
||||||
return next(reducer_, initialState_, enhancer_);
|
return next(reducer_, initialState_, enhancer_);
|
||||||
|
}
|
||||||
|
|
||||||
store = stores[instanceId] = configureStore(next, monitor.reducer, {
|
store = stores[instanceId] = configureStore(next, monitor.reducer, {
|
||||||
...config,
|
...config,
|
||||||
|
|
|
@ -8,7 +8,7 @@ if (process.env.NODE_ENV === 'production') {
|
||||||
s.parentNode.removeChild(s);
|
s.parentNode.removeChild(s);
|
||||||
} else {
|
} else {
|
||||||
s.src = chrome.extension.getURL('js/page.bundle.js');
|
s.src = chrome.extension.getURL('js/page.bundle.js');
|
||||||
s.onload = function () {
|
s.onload = function() {
|
||||||
this.parentNode.removeChild(this);
|
this.parentNode.removeChild(this);
|
||||||
};
|
};
|
||||||
(document.head || document.documentElement).appendChild(s);
|
(document.head || document.documentElement).appendChild(s);
|
||||||
|
|
|
@ -47,7 +47,7 @@ const get = (callback) => {
|
||||||
'^https?://localhost|0\\.0\\.0\\.0:\\d+\n^https?://.+\\.github\\.io',
|
'^https?://localhost|0\\.0\\.0\\.0:\\d+\n^https?://.+\\.github\\.io',
|
||||||
showContextMenus: true,
|
showContextMenus: true,
|
||||||
},
|
},
|
||||||
function (items) {
|
function(items) {
|
||||||
options = migrateOldOptions(items);
|
options = migrateOldOptions(items);
|
||||||
callback(options);
|
callback(options);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,9 @@ getPreloadedState(position, (state) => {
|
||||||
chrome.runtime.getBackgroundPage(({ store }) => {
|
chrome.runtime.getBackgroundPage(({ store }) => {
|
||||||
const localStore = configureStore(store, position, preloadedState);
|
const localStore = configureStore(store, position, preloadedState);
|
||||||
let name = 'monitor';
|
let name = 'monitor';
|
||||||
if (chrome && chrome.devtools && chrome.devtools.inspectedWindow)
|
if (chrome && chrome.devtools && chrome.devtools.inspectedWindow) {
|
||||||
name += chrome.devtools.inspectedWindow.tabId;
|
name += chrome.devtools.inspectedWindow.tabId;
|
||||||
|
}
|
||||||
const bg = chrome.runtime.connect({ name });
|
const bg = chrome.runtime.connect({ name });
|
||||||
const update = (action) => {
|
const update = (action) => {
|
||||||
localStore.dispatch(action || { type: UPDATE_STATE });
|
localStore.dispatch(action || { type: UPDATE_STATE });
|
||||||
|
|
|
@ -8,7 +8,7 @@ const path = resolve('build/extension');
|
||||||
const extensionId = 'lmhkpmbekcpmknklioeibfkpmmfibljd';
|
const extensionId = 'lmhkpmbekcpmknklioeibfkpmmfibljd';
|
||||||
const actionsPattern = /^@@INIT(.|\n)+@@reduxReactRouter\/routerDidChange(.|\n)+@@reduxReactRouter\/initRoutes(.|\n)+$/;
|
const actionsPattern = /^@@INIT(.|\n)+@@reduxReactRouter\/routerDidChange(.|\n)+@@reduxReactRouter\/initRoutes(.|\n)+$/;
|
||||||
|
|
||||||
describe('Chrome extension', function () {
|
describe('Chrome extension', function() {
|
||||||
this.timeout(20000);
|
this.timeout(20000);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { switchMonitorTests, delay } from '../utils/e2e';
|
||||||
const port = 9515;
|
const port = 9515;
|
||||||
const devPanelPath = 'chrome-extension://redux-devtools/devpanel.html';
|
const devPanelPath = 'chrome-extension://redux-devtools/devpanel.html';
|
||||||
|
|
||||||
describe('DevTools panel for Electron', function () {
|
describe('DevTools panel for Electron', function() {
|
||||||
this.timeout(10000);
|
this.timeout(10000);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
@ -36,7 +36,7 @@ describe('DevTools panel for Electron', function () {
|
||||||
|
|
||||||
await this.driver.manage().timeouts().pageLoadTimeout(5000);
|
await this.driver.manage().timeouts().pageLoadTimeout(5000);
|
||||||
|
|
||||||
const id = await this.driver.executeAsyncScript(function (callback) {
|
const id = await this.driver.executeAsyncScript(function(callback) {
|
||||||
let attempts = 5;
|
let attempts = 5;
|
||||||
function showReduxPanel() {
|
function showReduxPanel() {
|
||||||
if (attempts === 0) {
|
if (attempts === 0) {
|
||||||
|
|
|
@ -4,7 +4,7 @@ export const delay = (time) =>
|
||||||
new Promise((resolve) => setTimeout(resolve, time));
|
new Promise((resolve) => setTimeout(resolve, time));
|
||||||
|
|
||||||
export const switchMonitorTests = {
|
export const switchMonitorTests = {
|
||||||
'should switch to Log Monitor': async function () {
|
'should switch to Log Monitor': async function() {
|
||||||
await this.driver
|
await this.driver
|
||||||
.findElement(webdriver.By.xpath('//div[text()="Inspector"]'))
|
.findElement(webdriver.By.xpath('//div[text()="Inspector"]'))
|
||||||
.click();
|
.click();
|
||||||
|
@ -19,7 +19,7 @@ export const switchMonitorTests = {
|
||||||
await delay(500);
|
await delay(500);
|
||||||
},
|
},
|
||||||
|
|
||||||
'should switch to Chart Monitor': async function () {
|
'should switch to Chart Monitor': async function() {
|
||||||
await this.driver
|
await this.driver
|
||||||
.findElement(webdriver.By.xpath('//div[text()="Log monitor"]'))
|
.findElement(webdriver.By.xpath('//div[text()="Log monitor"]'))
|
||||||
.click();
|
.click();
|
||||||
|
@ -34,7 +34,7 @@ export const switchMonitorTests = {
|
||||||
await delay(500); // Wait till menu is closed
|
await delay(500); // Wait till menu is closed
|
||||||
},
|
},
|
||||||
|
|
||||||
'should switch back to Inspector Monitor': async function () {
|
'should switch back to Inspector Monitor': async function() {
|
||||||
await this.driver
|
await this.driver
|
||||||
.findElement(webdriver.By.xpath('//div[text()="Chart"]'))
|
.findElement(webdriver.By.xpath('//div[text()="Chart"]'))
|
||||||
.click();
|
.click();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user