UNPKG

1.14 kBJavaScriptView Raw
1"use strict";
2var __assign = (this && this.__assign) || function () {
3 __assign = Object.assign || function(t) {
4 for (var s, i = 1, n = arguments.length; i < n; i++) {
5 s = arguments[i];
6 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7 t[p] = s[p];
8 }
9 return t;
10 };
11 return __assign.apply(this, arguments);
12};
13Object.defineProperty(exports, "__esModule", { value: true });
14function create(initialState) {
15 var state = initialState;
16 var listeners = [];
17 function setState(partial) {
18 state = __assign(__assign({}, state), partial);
19 for (var i = 0; i < listeners.length; i++) {
20 listeners[i]();
21 }
22 }
23 function getState() {
24 return state;
25 }
26 function subscribe(listener) {
27 listeners.push(listener);
28 return function unsubscribe() {
29 var index = listeners.indexOf(listener);
30 listeners.splice(index, 1);
31 };
32 }
33 return {
34 setState: setState,
35 getState: getState,
36 subscribe: subscribe,
37 };
38}
39exports.create = create;