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

/*
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;
};