UNPKG

@livelike/react-native

Version:

LiveLike React Native package

43 lines (42 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createStore = createStore; function createStore(initialValue) { const store = { value: initialValue, listeners: [], set: updateValue => { store.value = updateValue; store.notify(); }, get: () => { return store.value; }, notify: () => { if (store.listeners.length) { const newValue = store.get(); try { store.listeners.forEach(cb => cb(newValue)); } catch (error) { console.error('Error while calling banner subscribers', error); } } }, subscribe: cb => { const cbIndex = store.listeners.findIndex(_cb => _cb === cb); if (cbIndex < 0) { store.listeners = [...store.listeners, cb]; } else { store.listeners = [...store.listeners]; store.listeners.splice(cbIndex, 1, cb); } return () => { store.listeners = store.listeners.filter(_cb => _cb !== cb); }; } }; return store; } //# sourceMappingURL=store.js.map