(
map: Map<K, V> | (K extends object ? WeakMap<K, V> : never),
key: K,
getDefaultValue: () => NoInfer<V>
)
| 50 | type NoInfer<T> = [T][T extends any ? 0 : never]; |
| 51 | |
| 52 | export function getOrUpdate<K, V>( |
| 53 | map: Map<K, V> | (K extends object ? WeakMap<K, V> : never), |
| 54 | key: K, |
| 55 | getDefaultValue: () => NoInfer<V> |
| 56 | ): V { |
| 57 | if (!map.has(key)) { |
| 58 | map.set(key, getDefaultValue()); |
| 59 | } |
| 60 | |
| 61 | return map.get(key)!; |
| 62 | } |
| 63 | |
| 64 | export function isNonNull<T>(value: T | null | undefined): value is T { |
| 65 | return value != null; |
no test coverage detected