react-entities
Version:
React Entities - the simplest app state management for React
32 lines (27 loc) • 856 B
JavaScript
/* Basic selectors */
export var selectAll = function selectAll(state) {
return state;
};
export var selectNone = function selectNone(_) {
return null;
};
/* Basic equality functions */
export var strictEqual = function strictEqual(a, b) {
return a === b;
};
export var shallowEqual = function shallowEqual(a, b) {
return strictEqual(a, b) || bothObjects(a, b) && equalProps(a, b);
};
var bothObjects = function bothObjects(a, b) {
return typeof a === 'object' && a !== null && typeof b === 'object' && b !== null;
};
var equalProps = function equalProps(a, b) {
var keysOfA = Object.keys(a);
var keysOfB = Object.keys(b);
if (keysOfA.length !== keysOfB.length) return false;
for (var i = 0; i < keysOfA.length; i++) {
var key = keysOfA[i];
if (!b.hasOwnProperty(key) || a[key] !== b[key]) return false;
}
return true;
};