UNPKG

848 BJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6// copypasted from rackt/reselect
7var defaultEqualityCheck = function defaultEqualityCheck(a, b) {
8 return a === b;
9};
10
11exports.default = function (func) {
12 var equalityCheck = arguments.length <= 1 || arguments[1] === undefined ? defaultEqualityCheck : arguments[1];
13
14 var lastArgs = null;
15 var lastResult = null;
16
17 return function () {
18 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
19 args[_key] = arguments[_key];
20 }
21
22 if (lastArgs !== null && lastArgs.length === args.length && args.every(function (value, index) {
23 return equalityCheck(value, lastArgs[index]);
24 })) {
25 return lastResult;
26 }
27 lastArgs = args;
28 lastResult = func.apply(undefined, args);
29 return lastResult;
30 };
31};
\No newline at end of file