zustand-middleware-computed-state
Version:
Computed state middleware for Zustand
28 lines (20 loc) • 969 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var _extends = require('@babel/runtime/helpers/extends');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
var computed = function computed(create, compute) {
return function (set, get, api) {
var setWithComputed = function setWithComputed(update, replace) {
set(function (state) {
var updated = typeof update === 'function' ? update(state) : update;
var computedState = compute(_extends__default['default']({}, state, updated));
return _extends__default['default']({}, updated, computedState);
}, replace);
};
api.setState = setWithComputed;
var state = create(setWithComputed, get, api);
return _extends__default['default']({}, state, compute(state));
};
};
exports.computed = computed;