diff options
Diffstat (limited to 'devtools/client/application/src/create-store.js')
-rw-r--r-- | devtools/client/application/src/create-store.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/devtools/client/application/src/create-store.js b/devtools/client/application/src/create-store.js new file mode 100644 index 0000000000..7c89adece3 --- /dev/null +++ b/devtools/client/application/src/create-store.js @@ -0,0 +1,50 @@ +/* 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 { + thunk, +} = require("resource://devtools/client/shared/redux/middleware/thunk.js"); +const eventTelemetryMiddleware = require("resource://devtools/client/application/src/middleware/event-telemetry.js"); + +const { + applyMiddleware, + createStore, +} = require("resource://devtools/client/shared/vendor/redux.js"); + +// Reducers + +const rootReducer = require("resource://devtools/client/application/src/reducers/index.js"); +const { + ManifestState, +} = require("resource://devtools/client/application/src/reducers/manifest-state.js"); +const { + WorkersState, +} = require("resource://devtools/client/application/src/reducers/workers-state.js"); +const { + PageState, +} = require("resource://devtools/client/application/src/reducers/page-state.js"); +const { + UiState, +} = require("resource://devtools/client/application/src/reducers/ui-state.js"); + +function configureStore(telemetry) { + // Prepare initial state. + const initialState = { + manifest: new ManifestState(), + page: new PageState(), + ui: new UiState(), + workers: new WorkersState(), + }; + + const middleware = applyMiddleware( + thunk(), + eventTelemetryMiddleware(telemetry) + ); + + return createStore(rootReducer, initialState, middleware); +} + +exports.configureStore = configureStore; |