UNPKG

@jsenv/util

Version:

Set of functions often needed when using Node.js.

25 lines (21 loc) 567 B
export const memoize = (compute) => { let memoized = false let memoizedValue const fnWithMemoization = (...args) => { if (memoized) { return memoizedValue } // if compute is recursive wait for it to be fully done before storing the value // so set memoized boolean after the call memoizedValue = compute(...args) memoized = true return memoizedValue } fnWithMemoization.forget = () => { const value = memoizedValue memoized = false memoizedValue = undefined return value } return fnWithMemoization }