Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"use strict";

/** @ignore 🚧 wip */
const MapCache = require("./MapCache");

const isNil = require("../is/nullOrUndefined");
/** Used to stand-in for `undefined` hash values. */


const HASH_UNDEFINED = '__lodash_hash_undefined__';
let SetCache = class SetCache {
  /**
   * Creates an array cache object to store unique values.
   *
   * @constructor
   * @param {Array} [values] The values to cache.
   */
  constructor(values) {
    let index = -1;
    const length = isNil(values) ? 0 : values.length;
    this.__data__ = new MapCache();

    while (++index < length) {
      this.add(values[index]);
    }
  }
  /**
   * Adds `value` to the array cache.
   *
   * @memberOf SetCache
   * @alias push
   * @param {*} value The value to cache.
   * @returns {Object} Returns the cache instance.
   */


  add(value) {
    this.__data__.set(value, HASH_UNDEFINED);

    return this;
  }
  /**
   * Checks if `value` is in the array cache.
   *
   * @memberOf SetCache
   * @param {*} value The value to search for.
   * @returns {number} Returns `true` if `value` is found, else `false`.
   */


  has(value) {
    return this.__data__.has(value);
  }

};
SetCache.prototype.push = SetCache.prototype.add;
module.exports = SetCache;