dgate 2.1.0

DGate API Gateway - High-performance API gateway with JavaScript module support
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// @flow
let weakMemoize = function <Arg, Return>(func: Arg => Return): Arg => Return {
  // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
  let cache: WeakMap<Arg, Return> = new WeakMap()
  return arg => {
    if (cache.has(arg)) {
      // $FlowFixMe
      return cache.get(arg)
    }
    let ret = func(arg)
    cache.set(arg, ret)
    return ret
  }
}

export default weakMemoize