blob: b3c46cab5717eabf168493be3257ffd17927cfd4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
export function memoizeLast(fn) {
let lastArgs;
let lastResult;
const memoized = (...args) => {
if (
lastArgs &&
args.length === lastArgs.length &&
args.every((arg, i) => arg === lastArgs[i])
) {
return lastResult;
}
lastArgs = args;
lastResult = fn(...args);
return lastResult;
};
return memoized;
}
export default memoizeLast;
|