UNPKG

984 BJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
9exports["default"] = createStore;
10function createStore(initialState) {
11 var state = initialState;
12 var listeners = [];
13
14 function setState(partial) {
15 state = _extends({}, state, partial);
16 for (var i = 0; i < listeners.length; i++) {
17 listeners[i]();
18 }
19 }
20
21 function getState() {
22 return state;
23 }
24
25 function subscribe(listener) {
26 listeners.push(listener);
27
28 return function unsubscribe() {
29 var index = listeners.indexOf(listener);
30 listeners.splice(index, 1);
31 };
32 }
33
34 return {
35 setState: setState,
36 getState: getState,
37 subscribe: subscribe
38 };
39}
40module.exports = exports["default"];
\No newline at end of file