mirror of
https://github.com/renovatebot/renovate.git
synced 2025-03-15 08:34:54 +00:00
17 lines
287 B
TypeScript
17 lines
287 B
TypeScript
interface Result<T = unknown> {
|
|
res: T;
|
|
}
|
|
|
|
export function memoize<T = unknown>(callback: () => T): () => T {
|
|
let memo: null | Result<T> = null;
|
|
|
|
return (): T => {
|
|
if (memo) {
|
|
return memo.res;
|
|
}
|
|
|
|
const res = callback();
|
|
memo = { res };
|
|
return res;
|
|
};
|
|
}
|