choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
43 lines (33 loc) • 976 B
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = createStore;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
function createStore(initialState) {
var state = initialState;
var listeners = [];
function setState(partial) {
state = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state), partial);
for (var i = 0; i < listeners.length; i++) {
listeners[i]();
}
}
function getState() {
return state;
}
function subscribe(listener) {
listeners.push(listener);
return function unsubscribe() {
var index = listeners.indexOf(listener);
listeners.splice(index, 1);
};
}
return {
setState: setState,
getState: getState,
subscribe: subscribe
};
}
//# sourceMappingURL=createStore.js.map
;