UNPKG

state-synchronizers

Version:

Deterministically update state based on other state

17 lines (16 loc) 712 B
"use strict"; exports.__esModule = true; exports.createStateSynchronizer = void 0; /** * Works only for plain JS objects and top-level properties. * * @param dependenciesKeys Names of properties of state. When any changes, `updater` will be run. * @returns A state synchronizer that runs the updater whenever a dependency changes. */ exports.createStateSynchronizer = function (updater, dependenciesKeys) { return function (state, previousState) { var shouldSynchronizeState = dependenciesKeys.some(function (dependencyKey) { return state[dependencyKey] !== previousState[dependencyKey]; }); if (shouldSynchronizeState) { return updater(state); } return state; }; };