All files / map/src getOrDefault.ts

100% Statements 4/4
100% Branches 2/2
100% Functions 3/3
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                            2x 1x 2x 2x    
/**
 *
 * @example
 * Get a value from a {@link Map} or the `defaultValue` if the key is absent
 * ```ts
 * const map = new Map();
 * const value = getOrDefault(map)(1, 2);
 * console.log(value); // 2
 * ```
 *
 * @typeParam K - the {@link Map} key type
 * @typeParam V - the {@link Map} value type
 * @param map - the {@link Map} to set the entry
 */
export const getOrDefault =
  <K, V>(map: Map<K, V>) =>
  (key: K, defaultValue: V): V => {
    return map.has(key) ? (map.get(key) as V) : defaultValue;
  };