| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | /*! * map-cache <https://github.com/jonschlinkert/map-cache> * * Copyright (c) 2015, Jon Schlinkert. * Licensed under the MIT License. */'use strict';var hasOwn = Object.prototype.hasOwnProperty;/** * Expose `MapCache` */module.exports = MapCache;/** * Creates a cache object to store key/value pairs. * * ```js * var cache = new MapCache(); * ``` * * @api public */function MapCache(data) {  this.__data__ = data || {};}/** * Adds `value` to `key` on the cache. * * ```js * cache.set('foo', 'bar'); * ``` * * @param {String} `key` The key of the value to cache. * @param {*} `value` The value to cache. * @returns {Object} Returns the `Cache` object for chaining. * @api public */MapCache.prototype.set = function mapSet(key, value) {  if (key !== '__proto__') {    this.__data__[key] = value;  }  return this;};/** * Gets the cached value for `key`. * * ```js * cache.get('foo'); * //=> 'bar' * ``` * * @param {String} `key` The key of the value to get. * @returns {*} Returns the cached value. * @api public */MapCache.prototype.get = function mapGet(key) {  return key === '__proto__' ? undefined : this.__data__[key];};/** * Checks if a cached value for `key` exists. * * ```js * cache.has('foo'); * //=> true * ``` * * @param {String} `key` The key of the entry to check. * @returns {Boolean} Returns `true` if an entry for `key` exists, else `false`. * @api public */MapCache.prototype.has = function mapHas(key) {  return key !== '__proto__' && hasOwn.call(this.__data__, key);};/** * Removes `key` and its value from the cache. * * ```js * cache.del('foo'); * ``` * @title .del * @param {String} `key` The key of the value to remove. * @returns {Boolean} Returns `true` if the entry was removed successfully, else `false`. * @api public */MapCache.prototype.del = function mapDelete(key) {  return this.has(key) && delete this.__data__[key];};
 |