summaryrefslogtreecommitdiffstats
path: root/devtools/client/aboutdebugging/src/create-store.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/aboutdebugging/src/create-store.js')
-rw-r--r--devtools/client/aboutdebugging/src/create-store.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/src/create-store.js b/devtools/client/aboutdebugging/src/create-store.js
new file mode 100644
index 0000000000..33c1e7c250
--- /dev/null
+++ b/devtools/client/aboutdebugging/src/create-store.js
@@ -0,0 +1,76 @@
+/* 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 Services = require("Services");
+
+const {
+ applyMiddleware,
+ createStore,
+} = require("devtools/client/shared/vendor/redux");
+const { thunk } = require("devtools/client/shared/redux/middleware/thunk.js");
+const {
+ waitUntilService,
+} = require("devtools/client/shared/redux/middleware/wait-service.js");
+
+const rootReducer = require("devtools/client/aboutdebugging/src/reducers/index");
+const {
+ DebugTargetsState,
+} = require("devtools/client/aboutdebugging/src/reducers/debug-targets-state");
+const {
+ RuntimesState,
+} = require("devtools/client/aboutdebugging/src/reducers/runtimes-state");
+const {
+ UiState,
+} = require("devtools/client/aboutdebugging/src/reducers/ui-state");
+const debugTargetListenerMiddleware = require("devtools/client/aboutdebugging/src/middleware/debug-target-listener");
+const errorLoggingMiddleware = require("devtools/client/aboutdebugging/src/middleware/error-logging");
+const eventRecordingMiddleware = require("devtools/client/aboutdebugging/src/middleware/event-recording");
+const extensionComponentDataMiddleware = require("devtools/client/aboutdebugging/src/middleware/extension-component-data");
+const processComponentDataMiddleware = require("devtools/client/aboutdebugging/src/middleware/process-component-data");
+const tabComponentDataMiddleware = require("devtools/client/aboutdebugging/src/middleware/tab-component-data");
+const workerComponentDataMiddleware = require("devtools/client/aboutdebugging/src/middleware/worker-component-data");
+const {
+ getDebugTargetCollapsibilities,
+} = require("devtools/client/aboutdebugging/src/modules/debug-target-collapsibilities");
+const {
+ getNetworkLocations,
+} = require("devtools/client/aboutdebugging/src/modules/network-locations");
+
+const { PREFERENCES } = require("devtools/client/aboutdebugging/src/constants");
+
+function configureStore() {
+ const initialState = {
+ debugTargets: new DebugTargetsState(),
+ runtimes: new RuntimesState(),
+ ui: getUiState(),
+ };
+
+ const middleware = applyMiddleware(
+ thunk(),
+ debugTargetListenerMiddleware,
+ errorLoggingMiddleware,
+ eventRecordingMiddleware,
+ extensionComponentDataMiddleware,
+ processComponentDataMiddleware,
+ tabComponentDataMiddleware,
+ workerComponentDataMiddleware,
+ waitUntilService
+ );
+
+ return createStore(rootReducer, initialState, middleware);
+}
+
+function getUiState() {
+ const collapsibilities = getDebugTargetCollapsibilities();
+ const locations = getNetworkLocations();
+ const showHiddenAddons = Services.prefs.getBoolPref(
+ PREFERENCES.SHOW_HIDDEN_ADDONS,
+ false
+ );
+ return new UiState(locations, collapsibilities, showHiddenAddons);
+}
+
+exports.configureStore = configureStore;