@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 {?} */
const isFns = isFunction(keysOrFuncs[0]);
// Return when they are NOT changed
return keysOrFuncs.some((/**
* @param {?} keyOrFunc
* @return {?}
*/
keyOrFunc => {
if (isFns) {
return keyOrFunc(prevState) !== keyOrFunc(currState);
}
return prevState[keyOrFunc] !== currState[keyOrFunc];
})) === false;
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZUtleXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvY29tcGFyZUtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7OztBQUUxQyxNQUFNLFVBQVUsV0FBVyxDQUFJLFdBQWtCO0lBQy9DOzs7Ozs7SUFBTyxVQUFhLFNBQVMsRUFBRSxTQUFTOztjQUNoQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxtQ0FBbUM7UUFDbkMsT0FBTyxXQUFXLENBQUMsSUFBSTs7OztRQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2xDLElBQUcsS0FBSyxFQUFFO2dCQUNSLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN0RDtZQUNELE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RCxDQUFDLEVBQUMsS0FBSyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4vaXNGdW5jdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlS2V5czxUPihrZXlzT3JGdW5jczogYW55W10pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUPihwcmV2U3RhdGUsIGN1cnJTdGF0ZSkge1xuICAgIGNvbnN0IGlzRm5zID0gaXNGdW5jdGlvbihrZXlzT3JGdW5jc1swXSk7XG4gICAgLy8gUmV0dXJuIHdoZW4gdGhleSBhcmUgTk9UIGNoYW5nZWRcbiAgICByZXR1cm4ga2V5c09yRnVuY3Muc29tZShrZXlPckZ1bmMgPT4ge1xuICAgICAgaWYoaXNGbnMpIHtcbiAgICAgICAgcmV0dXJuIGtleU9yRnVuYyhwcmV2U3RhdGUpICE9PSBrZXlPckZ1bmMoY3VyclN0YXRlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcmV2U3RhdGVba2V5T3JGdW5jXSAhPT0gY3VyclN0YXRlW2tleU9yRnVuY107XG4gICAgfSkgPT09IGZhbHNlO1xuICB9O1xufVxuIl19