@datorama/akita
Version:
State Management Tailored-Made for JS Applications
34 lines • 2.37 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { isFunction } from './isFunction';
/**
* @template T
* @param {?} keysOrFuncs
* @return {?}
*/
export function compareKeys(keysOrFuncs) {
return (/**
* @template T
* @param {?} prevState
* @param {?} currState
* @return {?}
*/
function (prevState, currState) {
/** @type {?} */
var isFns = isFunction(keysOrFuncs[0]);
// Return when they are NOT changed
return keysOrFuncs.some((/**
* @param {?} keyOrFunc
* @return {?}
*/
function (keyOrFunc) {
if (isFns) {
return keyOrFunc(prevState) !== keyOrFunc(currState);
}
return prevState[keyOrFunc] !== currState[keyOrFunc];
})) === false;
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZUtleXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvY29tcGFyZUtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7OztBQUUxQyxNQUFNLFVBQVUsV0FBVyxDQUFJLFdBQWtCO0lBQy9DOzs7Ozs7SUFBTyxVQUFhLFNBQVMsRUFBRSxTQUFTOztZQUNoQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxtQ0FBbUM7UUFDbkMsT0FBTyxXQUFXLENBQUMsSUFBSTs7OztRQUFDLFVBQUEsU0FBUztZQUMvQixJQUFHLEtBQUssRUFBRTtnQkFDUixPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdEQ7WUFDRCxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxFQUFDLEtBQUssS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL2lzRnVuY3Rpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZUtleXM8VD4oa2V5c09yRnVuY3M6IGFueVtdKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VD4ocHJldlN0YXRlLCBjdXJyU3RhdGUpIHtcbiAgICBjb25zdCBpc0ZucyA9IGlzRnVuY3Rpb24oa2V5c09yRnVuY3NbMF0pO1xuICAgIC8vIFJldHVybiB3aGVuIHRoZXkgYXJlIE5PVCBjaGFuZ2VkXG4gICAgcmV0dXJuIGtleXNPckZ1bmNzLnNvbWUoa2V5T3JGdW5jID0+IHtcbiAgICAgIGlmKGlzRm5zKSB7XG4gICAgICAgIHJldHVybiBrZXlPckZ1bmMocHJldlN0YXRlKSAhPT0ga2V5T3JGdW5jKGN1cnJTdGF0ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJldlN0YXRlW2tleU9yRnVuY10gIT09IGN1cnJTdGF0ZVtrZXlPckZ1bmNdO1xuICAgIH0pID09PSBmYWxzZTtcbiAgfTtcbn1cbiJdfQ==