foop
Version:
interfaces that describe their intentions.
49 lines (39 loc) • 4.41 kB
JavaScript
/** @ignore 🚧 wip */
var MapCache = require('./MapCache')
var isNil = require('../is/nullOrUndefined')
/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__'
var SetCache = function SetCache(values) {
var this$1 = this;
var index = -1
var length = isNil(values) ? 0 : values.length
this.__data__ = new MapCache()
while (++index < length) {
this$1.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.
*/
SetCache.prototype.add = function 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`.
*/
SetCache.prototype.has = function has (value) {
return this.__data__.has(value)
};
SetCache.prototype.push = SetCache.prototype.add
module.exports = SetCache
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2V0Q2FjaGUuanMiLCJzb3VyY2VzIjpbIlNldENhY2hlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAaWdub3JlIPCfmqcgd2lwICovXG5cbmNvbnN0IE1hcENhY2hlID0gcmVxdWlyZSgnLi9NYXBDYWNoZScpXG5jb25zdCBpc05pbCA9IHJlcXVpcmUoJy4uL2lzL251bGxPclVuZGVmaW5lZCcpXG5cbi8qKiBVc2VkIHRvIHN0YW5kLWluIGZvciBgdW5kZWZpbmVkYCBoYXNoIHZhbHVlcy4gKi9cbmNvbnN0IEhBU0hfVU5ERUZJTkVEID0gJ19fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18nXG5cbmNsYXNzIFNldENhY2hlIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgY2FjaGUgb2JqZWN0IHRvIHN0b3JlIHVuaXF1ZSB2YWx1ZXMuXG4gICAqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge0FycmF5fSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGNhY2hlLlxuICAgKi9cbiAgY29uc3RydWN0b3IodmFsdWVzKSB7XG4gICAgbGV0IGluZGV4ID0gLTFcbiAgICBjb25zdCBsZW5ndGggPSBpc05pbCh2YWx1ZXMpID8gMCA6IHZhbHVlcy5sZW5ndGhcblxuICAgIHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUoKVxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICB0aGlzLmFkZCh2YWx1ZXNbaW5kZXhdKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGB2YWx1ZWAgdG8gdGhlIGFycmF5IGNhY2hlLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgU2V0Q2FjaGVcbiAgICogQGFsaWFzIHB1c2hcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2FjaGUuXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNhY2hlIGluc3RhbmNlLlxuICAgKi9cbiAgYWRkKHZhbHVlKSB7XG4gICAgdGhpcy5fX2RhdGFfXy5zZXQodmFsdWUsIEhBU0hfVU5ERUZJTkVEKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gdGhlIGFycmF5IGNhY2hlLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgU2V0Q2FjaGVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgaGFzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHZhbHVlKVxuICB9XG59XG5cblNldENhY2hlLnByb3RvdHlwZS5wdXNoID0gU2V0Q2FjaGUucHJvdG90eXBlLmFkZFxuXG5tb2R1bGUuZXhwb3J0cyA9IFNldENhY2hlXG4iXSwibmFtZXMiOlsiY29uc3QiLCJsZXQiLCJ0aGlzIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsR0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3RDQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQzs7O0FBRzlDQSxHQUFLLENBQUMsY0FBYyxHQUFHLDJCQUEyQjs7QUFFbEQsSUFBTSxRQUFRLEdBQUMsQUFDZixBQUFFLEFBQ0QsQUFBRSxBQUNGLEFBQUUsQUFDRixBQUFFLEFBQ0YsQUFBRSxBQUNGLEFBQUUsQUFDSCxBQUFFLGlCQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7O0FBQUE7RUFDckIsQUFBRUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7RUFDaEIsQUFBRUQsR0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNOztFQUVsRCxBQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUU7RUFDaEMsQUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtJQUN6QixBQUFFRSxNQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztFQUMzQixBQUFFLENBQUM7QUFDTCxBQUFFLENBQUMsQ0FBQTs7QUFFSCxBQUFFO0NBQ0QsQUFBRTtDQUNGLEFBQUU7Q0FDRixBQUFFO0NBQ0YsQUFBRTtDQUNGLEFBQUU7Q0FDRixBQUFFO0NBQ0YsQUFBRTtBQUNILEFBQUUsbUJBQUEsR0FBRyxnQkFBQSxDQUFDLEtBQUssRUFBRTtFQUNYLEFBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztFQUMxQyxBQUFFLE9BQU8sSUFBSTtBQUNmLEFBQUUsQ0FBQyxDQUFBOztBQUVILEFBQUU7Q0FDRCxBQUFFO0NBQ0YsQUFBRTtDQUNGLEFBQUU7Q0FDRixBQUFFO0NBQ0YsQUFBRTtDQUNGLEFBQUU7QUFDSCxBQUFFLG1CQUFBLEdBQUcsZ0JBQUEsQ0FBQyxLQUFLLEVBQUU7RUFDWCxBQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0FBQ25DLEFBQUUsQ0FBQyxDQUFBLEFBQ0Y7O0FBRUQsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHOztBQUVoRCxNQUFNLENBQUMsT0FBTyxHQUFHLFFBQVE7In0=