juliette
Version:
Reactive State Management Powered by RxJS
13 lines • 478 B
JavaScript
export function composeSelectors(selectors, composer) {
let cachedResult;
let cachedSlices;
return state => {
const newSlices = selectors.map(selector => selector(state));
if (!cachedResult || cachedSlices.some((cachedSlice, i) => cachedSlice !== newSlices[i])) {
cachedResult = composer(...newSlices);
cachedSlices = newSlices;
}
return cachedResult;
};
}
//# sourceMappingURL=selectors.js.map