UNPKG

react-sweet-state

Version:

Global + local state combining the best of Redux and Context API

28 lines (25 loc) 636 B
import hash from '../utils/hash'; function createKey(initialState, actions, name) { const src = !name ? Object.keys(actions).reduce((acc, k) => acc + actions[k].toString(), '') : ''; return [name, hash(src + JSON.stringify(initialState))].filter(Boolean).join('__'); } export function createStore(_ref) { let { name = '', initialState, actions, containedBy, handlers = {} } = _ref; let key; return { get key() { // lazy evaluate key on first access return key || (key = createKey(initialState, actions, name)); }, initialState, actions, containedBy, handlers }; }