All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.lib.util.MapHelpers.js Maven / Gradle / Ivy

Go to download

Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.

The newest version!
/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/

"use strict";

/**
 * getOrInsert is a helper function for maps that allows you to get a value
 * from a map if it exists, or insert a new value if it doesn't. If it value doesn't
 * exist, it will be computed by the provided function.
 *
 * @template K
 * @template V
 * @param {Map} map The map object to check
 * @param {K} key The key to check
 * @param {function(): V} computer function which will compute the value if it doesn't exist
 * @returns {V} The value from the map, or the computed value
 *
 * @example
 * ```js
 * const map = new Map();
 * const value = getOrInsert(map, "key", () => "value");
 * console.log(value); // "value"
 * ```
 */
exports.getOrInsert = (map, key, computer) => {
	// Grab key from map
	const value = map.get(key);
	// If the value already exists, return it
	if (value !== undefined) return value;
	// Otherwise compute the value, set it in the map, and return it
	const newValue = computer();
	map.set(key, newValue);
	return newValue;
};




© 2015 - 2024 Weber Informatics LLC | Privacy Policy