You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
472 B
22 lines
472 B
/* |
|
MIT License http://www.opensource.org/licenses/mit-license.php |
|
Author Tobias Koppers @sokra |
|
*/ |
|
|
|
"use strict"; |
|
|
|
/** |
|
* @template K |
|
* @template V |
|
* @param {Map<K, V>} map a map |
|
* @param {K} key the key |
|
* @param {function(): V} computer compute value |
|
* @returns {V} value |
|
*/ |
|
exports.provide = (map, key, computer) => { |
|
const value = map.get(key); |
|
if (value !== undefined) return value; |
|
const newValue = computer(); |
|
map.set(key, newValue); |
|
return newValue; |
|
};
|
|
|