create-store.js (1594B)
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 ignore, 9 } = require("resource://devtools/client/shared/redux/middleware/ignore.js"); 10 const { 11 thunk, 12 } = require("resource://devtools/client/shared/redux/middleware/thunk.js"); 13 const eventTelemetryMiddleware = require("resource://devtools/client/application/src/middleware/event-telemetry.js"); 14 15 const { 16 applyMiddleware, 17 createStore, 18 } = require("resource://devtools/client/shared/vendor/redux.js"); 19 20 // Reducers 21 22 const rootReducer = require("resource://devtools/client/application/src/reducers/index.js"); 23 const { 24 ManifestState, 25 } = require("resource://devtools/client/application/src/reducers/manifest-state.js"); 26 const { 27 WorkersState, 28 } = require("resource://devtools/client/application/src/reducers/workers-state.js"); 29 const { 30 PageState, 31 } = require("resource://devtools/client/application/src/reducers/page-state.js"); 32 const { 33 UiState, 34 } = require("resource://devtools/client/application/src/reducers/ui-state.js"); 35 36 function configureStore(telemetry) { 37 // Prepare initial state. 38 const initialState = { 39 manifest: new ManifestState(), 40 page: new PageState(), 41 ui: new UiState(), 42 workers: new WorkersState(), 43 }; 44 45 const middleware = applyMiddleware( 46 ignore, 47 thunk(), 48 eventTelemetryMiddleware(telemetry) 49 ); 50 51 return createStore(rootReducer, initialState, middleware); 52 } 53 54 exports.configureStore = configureStore;