This commit is contained in:
17
node_modules/@emotion/weak-memoize/src/index.ts
generated
vendored
Normal file
17
node_modules/@emotion/weak-memoize/src/index.ts
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
let weakMemoize = function <Arg extends object, Return>(
|
||||
func: (arg: Arg) => Return
|
||||
): (arg: Arg) => Return {
|
||||
let cache = new WeakMap<Arg, Return>()
|
||||
return (arg: Arg) => {
|
||||
if (cache.has(arg)) {
|
||||
// Use non-null assertion because we just checked that the cache `has` it
|
||||
// This allows us to remove `undefined` from the return value
|
||||
return cache.get(arg)!
|
||||
}
|
||||
let ret = func(arg)
|
||||
cache.set(arg, ret)
|
||||
return ret
|
||||
}
|
||||
}
|
||||
|
||||
export default weakMemoize
|
||||
Reference in New Issue
Block a user