aboutsummaryrefslogtreecommitdiff
path: root/node_modules/map-cache/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/map-cache/index.js')
-rw-r--r--node_modules/map-cache/index.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/node_modules/map-cache/index.js b/node_modules/map-cache/index.js
new file mode 100644
index 0000000..f86842f
--- /dev/null
+++ b/node_modules/map-cache/index.js
@@ -0,0 +1,100 @@
+/*!
+ * 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];
+};