w3-redux
Version:
redux and redux thunk tools
45 lines (44 loc) • 2.46 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createStore = void 0;
var redux_thunk_1 = __importDefault(require("redux-thunk"));
var redux_1 = require("redux");
var extension_1 = require("@redux-devtools/extension");
var next_redux_wrapper_1 = require("next-redux-wrapper");
var generateReducer_1 = require("./utils/generateReducer");
var createStore = function (reducers, options) {
var _a, _b;
var enableDevtools = (_a = options === null || options === void 0 ? void 0 : options.enableDevtools) !== null && _a !== void 0 ? _a : false;
var nextWrapp = (_b = options === null || options === void 0 ? void 0 : options.nextWrapp) !== null && _b !== void 0 ? _b : false;
// format reducer
var rootReducer = (0, redux_1.combineReducers)(reducers.reduce(function (result, current) {
var _a;
return __assign(__assign({}, result), (Object.keys(current.reducers).length > 0 && (_a = {},
_a[current.combineName] = (0, redux_1.combineReducers)(__assign({}, (0, generateReducer_1.generateReducer)(current.reducers, current.combineName))),
_a)));
}, {}));
if (!nextWrapp) {
return (0, redux_1.createStore)(rootReducer, enableDevtools ? (0, extension_1.composeWithDevTools)((0, redux_1.applyMiddleware)(redux_thunk_1.default)) : (0, redux_1.compose)((0, redux_1.applyMiddleware)(redux_thunk_1.default)));
}
else {
var store = enableDevtools
? function (context) { return (0, redux_1.createStore)(rootReducer, (0, extension_1.composeWithDevTools)((0, redux_1.applyMiddleware)(redux_thunk_1.default))); }
: function (context) { return (0, redux_1.createStore)(rootReducer, (0, redux_1.compose)((0, redux_1.applyMiddleware)(redux_thunk_1.default))); };
return (0, next_redux_wrapper_1.createWrapper)(store);
}
};
exports.createStore = createStore;