UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

50 lines (49 loc) 1.48 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const MapCache_1 = __importDefault(require("./MapCache")); /** Used to stand-in for `undefined` hash values. */ const HASH_UNDEFINED = '__lodash_hash_undefined__'; class SetCache { /** * Creates an array cache object to store unique values. * * @private * @constructor * @param {Array} [values] The values to cache. */ constructor(values) { let index = -1; const length = values == null ? 0 : values.length; this.__data__ = new MapCache_1.default; 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 {boolean} Returns `true` if `value` is found, else `false`. */ has(value) { return this.__data__.has(value); } } SetCache.prototype.push = SetCache.prototype.add; exports.default = SetCache;