typedux
Version:
Slightly adjusted Redux (awesome by default) for TS
81 lines • 3.57 kB
JavaScript
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "redux", "../../store/ObservableStore", "../../util"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.configureMockStoreFactory = void 0;
var redux_1 = require("redux");
var ObservableStore_1 = require("../../store/ObservableStore");
var util_1 = require("../../util");
var Noop = (function () { });
/**
* 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) {
if (middlewares === void 0) { middlewares = []; }
if (stateArgs === void 0) { stateArgs = []; }
if (actionFactories === void 0) { actionFactories = []; }
return function (fromState, storeReducer, onStateChange, storeMixins) {
if (storeReducer === void 0) { storeReducer = null; }
if (onStateChange === void 0) { onStateChange = Noop; }
if (storeMixins === void 0) { storeMixins = null; }
// First calculate the store state if a function was provided
var storeState = (util_1.isFunction(fromState)) ? fromState() : fromState;
function makeStore() {
var store = new ObservableStore_1.ObservableStore(ObservableStore_1.ObservableStore.makeSimpleReducers.apply(ObservableStore_1.ObservableStore, __spread(stateArgs)), null, null, storeState);
if (storeMixins)
Object.assign(store, storeMixins);
actionFactories.forEach(function (factory) {
return factory.setStore(store);
});
store.subscribe(onStateChange);
return store;
}
if (middlewares.length) {
var addMiddleware = redux_1.applyMiddleware.apply(void 0, __spread(middlewares))(makeStore);
return addMiddleware(storeReducer, fromState);
}
else {
return makeStore();
}
};
}
function configureMockStoreFactory(middlewares, stateArgs, actionFactories) {
if (middlewares === void 0) { middlewares = []; }
if (stateArgs === void 0) { stateArgs = []; }
if (actionFactories === void 0) { actionFactories = []; }
return mockStoreFactory(middlewares, stateArgs, actionFactories);
}
exports.configureMockStoreFactory = configureMockStoreFactory;
});
//# sourceMappingURL=MockStore.js.map