flypro
Version:
39 lines (31 loc) • 911 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createStore;
function createStore(handler, state) {
var currentHandler = handler;
var currentState = state;
var listeners = [];
function getState() {
return currentState;
}
function getListeners() {
return listeners;
}
function subscribe(listener) {
listeners.push(listener);
return function unsubscribe() {
listeners.splice(listeners.indexOf(listener), 1);
};
}
function send(command) {
currentState = currentHandler(currentState, command);
listeners.slice().forEach(function (listener) {
return listener();
});
return command;
}
send({ type: 'INIT_FLYPRO' });
return { send: send, subscribe: subscribe, getState: getState, getListeners: getListeners };
}