@tacky/store
Version:
State management framework based on react
55 lines (37 loc) • 1.47 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.init = init;
exports.isRunning = void 0;
var _use = require("../core/use");
var _store = require("../core/store");
var _effect = _interopRequireDefault(require("../middlewares/effect"));
var _logger = _interopRequireDefault(require("../middlewares/logger"));
var _config = require("../const/config");
var _compose = require("../utils/compose");
var _error = require("../utils/error");
var _lang = require("../utils/lang");
var isRunning = false;
/**
* Includes init built-in middleware, create store, load domain tree and so on.
*/
exports.isRunning = isRunning;
function init() {
(0, _error.invariant)((0, _lang.isSupportProxy)() && (0, _lang.isSupportSymbol)(), 'Proxy or Symbol is not supported, please add polyfill.');
(0, _error.invariant)(!isRunning, 'Cannot init store multiple times.');
exports.isRunning = isRunning = true;
if (_config.ctx.middleware.effect) {
(0, _use.use)(_effect["default"]);
}
if (_config.ctx.middleware.logger) {
(0, _use.use)(_logger["default"]);
}
var enhancers = [(0, _use.applyMiddleware)()];
var composeEnhancers = _compose.compose;
if (process.env.NODE_ENV !== 'production') {// Tacky dev tools extension support.
}
var enhancer = composeEnhancers.apply(void 0, enhancers);
(0, _store.createStore)(enhancer);
}