summaryrefslogtreecommitdiffstats
path: root/devtools/client/shared/redux/middleware/history.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/shared/redux/middleware/history.js')
-rw-r--r--devtools/client/shared/redux/middleware/history.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/devtools/client/shared/redux/middleware/history.js b/devtools/client/shared/redux/middleware/history.js
new file mode 100644
index 0000000000..f3021ed172
--- /dev/null
+++ b/devtools/client/shared/redux/middleware/history.js
@@ -0,0 +1,25 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+const flags = require("devtools/shared/flags");
+
+/**
+ * A middleware that stores every action coming through the store in the passed
+ * in logging object. Should only be used for tests, as it collects all
+ * action information, which will cause memory bloat.
+ */
+exports.history = (log = []) => ({ dispatch, getState }) => {
+ if (!flags.testing) {
+ console.warn(
+ "Using history middleware stores all actions in state for " +
+ "testing and devtools is not currently running in test " +
+ "mode. Be sure this is intentional."
+ );
+ }
+ return next => action => {
+ log.push(action);
+ next(action);
+ };
+};