UNPKG

typedux

Version:

Slightly adjusted Redux (awesome by default) for TS

40 lines 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.configureMockStoreFactory = void 0; const redux_1 = require("redux"); const ObservableStore_1 = require("../../store/ObservableStore"); const util_1 = require("../../util"); const Noop = (() => { }); /** * Create a new factory with the provided middlewares * to generate stores * * @param middlewares to install in the mock store * @returns {MockStoreFactory} */ function mockStoreFactory(middlewares = [], stateArgs = [], actionFactories = []) { return function (fromState, storeReducer = null, onStateChange = Noop, storeMixins = null) { // First calculate the store state if a function was provided let storeState = (util_1.isFunction(fromState)) ? fromState() : fromState; function makeStore() { const store = new ObservableStore_1.ObservableStore(ObservableStore_1.ObservableStore.makeSimpleReducers(...stateArgs), null, null, storeState); if (storeMixins) Object.assign(store, storeMixins); actionFactories.forEach(factory => factory.setStore(store)); store.subscribe(onStateChange); return store; } if (middlewares.length) { const addMiddleware = redux_1.applyMiddleware(...middlewares)(makeStore); return addMiddleware(storeReducer, fromState); } else { return makeStore(); } }; } function configureMockStoreFactory(middlewares = [], stateArgs = [], actionFactories = []) { return mockStoreFactory(middlewares, stateArgs, actionFactories); } exports.configureMockStoreFactory = configureMockStoreFactory; //# sourceMappingURL=MockStore.js.map