UNPKG

472 BJavaScriptView Raw
1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Tobias Koppers @sokra
4*/
5
6"use strict";
7
8/**
9 * @template K
10 * @template V
11 * @param {Map<K, V>} map a map
12 * @param {K} key the key
13 * @param {function(): V} computer compute value
14 * @returns {V} value
15 */
16exports.provide = (map, key, computer) => {
17 const value = map.get(key);
18 if (value !== undefined) return value;
19 const newValue = computer();
20 map.set(key, newValue);
21 return newValue;
22};