create-store.js (3380B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 "use strict"; 6 7 const { 8 applyMiddleware, 9 createStore, 10 } = require("resource://devtools/client/shared/vendor/redux.js"); 11 12 const { 13 ignore, 14 } = require("resource://devtools/client/shared/redux/middleware/ignore.js"); 15 const { 16 thunk, 17 } = require("resource://devtools/client/shared/redux/middleware/thunk.js"); 18 const { 19 waitUntilService, 20 } = require("resource://devtools/client/shared/redux/middleware/wait-service.js"); 21 22 const rootReducer = require("resource://devtools/client/aboutdebugging/src/reducers/index.js"); 23 const { 24 DebugTargetsState, 25 } = require("resource://devtools/client/aboutdebugging/src/reducers/debug-targets-state.js"); 26 const { 27 RuntimesState, 28 } = require("resource://devtools/client/aboutdebugging/src/reducers/runtimes-state.js"); 29 const { 30 UiState, 31 } = require("resource://devtools/client/aboutdebugging/src/reducers/ui-state.js"); 32 const debugTargetListenerMiddleware = require("resource://devtools/client/aboutdebugging/src/middleware/debug-target-listener.js"); 33 const errorLoggingMiddleware = require("resource://devtools/client/aboutdebugging/src/middleware/error-logging.js"); 34 const eventRecordingMiddleware = require("resource://devtools/client/aboutdebugging/src/middleware/event-recording.js"); 35 const extensionComponentDataMiddleware = require("resource://devtools/client/aboutdebugging/src/middleware/extension-component-data.js"); 36 const processComponentDataMiddleware = require("resource://devtools/client/aboutdebugging/src/middleware/process-component-data.js"); 37 const tabComponentDataMiddleware = require("resource://devtools/client/aboutdebugging/src/middleware/tab-component-data.js"); 38 const workerComponentDataMiddleware = require("resource://devtools/client/aboutdebugging/src/middleware/worker-component-data.js"); 39 const { 40 simpleConsoleLogger, 41 } = require("resource://devtools/client/aboutdebugging/src/middleware/simple-console-logger.js"); 42 const { 43 getDebugTargetCollapsibilities, 44 } = require("resource://devtools/client/aboutdebugging/src/modules/debug-target-collapsibilities.js"); 45 const { 46 getNetworkLocations, 47 } = require("resource://devtools/client/aboutdebugging/src/modules/network-locations.js"); 48 49 const { 50 PREFERENCES, 51 } = require("resource://devtools/client/aboutdebugging/src/constants.js"); 52 53 function configureStore() { 54 const initialState = { 55 debugTargets: new DebugTargetsState(), 56 runtimes: new RuntimesState(), 57 ui: getUiState(), 58 }; 59 60 const middleware = applyMiddleware( 61 ignore, 62 thunk(), 63 simpleConsoleLogger, 64 debugTargetListenerMiddleware, 65 errorLoggingMiddleware, 66 eventRecordingMiddleware, 67 extensionComponentDataMiddleware, 68 processComponentDataMiddleware, 69 tabComponentDataMiddleware, 70 workerComponentDataMiddleware, 71 waitUntilService 72 ); 73 74 return createStore(rootReducer, initialState, middleware); 75 } 76 77 function getUiState() { 78 const collapsibilities = getDebugTargetCollapsibilities(); 79 const locations = getNetworkLocations(); 80 const showHiddenAddons = Services.prefs.getBoolPref( 81 PREFERENCES.SHOW_HIDDEN_ADDONS, 82 false 83 ); 84 return new UiState(locations, collapsibilities, showHiddenAddons); 85 } 86 87 exports.configureStore = configureStore;