UNPKG

foop

Version:

interfaces that describe their intentions.

108 lines (105 loc) 6.52 kB
/** @ignore 🚧 wip */ // import assocIndexOf from './assocIndexOf.js' // class ListCache { // /** // * Creates an list cache object. // * // * @private // * @constructor // * @param {Array} [entries] The key-value pairs to cache. // */ // constructor(entries) { // let index = -1 // const length = entries == null ? 0 : entries.length // // this.clear() // while (++index < length) { // const entry = entries[index] // this.set(entry[0], entry[1]) // } // } // // /** // * Removes all key-value entries from the list cache. // * // * @memberOf ListCache // */ // clear() { // this.__data__ = [] // this.size = 0 // } // // /** // * Removes `key` and its value from the list cache. // * // * @memberOf ListCache // * @param {string} key The key of the value to remove. // * @returns {boolean} Returns `true` if the entry was removed, else `false`. // */ // delete(key) { // const data = this.__data__ // const index = assocIndexOf(data, key) // // if (index < 0) { // return false // } // const lastIndex = data.length - 1 // if (index == lastIndex) { // data.pop() // } // else { // data.splice(index, 1) // } // --this.size // return true // } // // /** // * Gets the list cache value for `key`. // * // * @memberOf ListCache // * @param {string} key The key of the value to get. // * @returns {*} Returns the entry value. // */ // get(key) { // const data = this.__data__ // const index = assocIndexOf(data, key) // return index < 0 ? undefined : data[index][1] // } // // /** // * Checks if a list cache value for `key` exists. // * // * @memberOf ListCache // * @param {string} key The key of the entry to check. // * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. // */ // has(key) { // return assocIndexOf(this.__data__, key) > -1 // } // // /** // * Sets the list cache `key` to `value`. // * // * @memberOf ListCache // * @param {string} key The key of the value to set. // * @param {*} value The value to set. // * @returns {Object} Returns the list cache instance. // */ // set(key, value) { // const data = this.__data__ // const index = assocIndexOf(data, key) // // if (index < 0) { // ++this.size // data.push([key, value]) // } // else { // data[index][1] = value // } // return this // } // } // // module.exports = ListCache //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdENhY2hlLmpzIiwic291cmNlcyI6WyJMaXN0Q2FjaGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBpZ25vcmUg8J+apyB3aXAgKi9cblxuLy8gaW1wb3J0IGFzc29jSW5kZXhPZiBmcm9tICcuL2Fzc29jSW5kZXhPZi5qcydcblxuLy8gY2xhc3MgTGlzdENhY2hlIHtcbi8vICAgLyoqXG4vLyAgICAqIENyZWF0ZXMgYW4gbGlzdCBjYWNoZSBvYmplY3QuXG4vLyAgICAqXG4vLyAgICAqIEBwcml2YXRlXG4vLyAgICAqIEBjb25zdHJ1Y3RvclxuLy8gICAgKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbi8vICAgICovXG4vLyAgIGNvbnN0cnVjdG9yKGVudHJpZXMpIHtcbi8vICAgICBsZXQgaW5kZXggPSAtMVxuLy8gICAgIGNvbnN0IGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aFxuLy9cbi8vICAgICB0aGlzLmNsZWFyKClcbi8vICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuLy8gICAgICAgY29uc3QgZW50cnkgPSBlbnRyaWVzW2luZGV4XVxuLy8gICAgICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKVxuLy8gICAgIH1cbi8vICAgfVxuLy9cbi8vICAgLyoqXG4vLyAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4vLyAgICAqXG4vLyAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbi8vICAgICovXG4vLyAgIGNsZWFyKCkge1xuLy8gICAgIHRoaXMuX19kYXRhX18gPSBbXVxuLy8gICAgIHRoaXMuc2l6ZSA9IDBcbi8vICAgfVxuLy9cbi8vICAgLyoqXG4vLyAgICAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuLy8gICAgKlxuLy8gICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4vLyAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuLy8gICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4vLyAgICAqL1xuLy8gICBkZWxldGUoa2V5KSB7XG4vLyAgICAgY29uc3QgZGF0YSA9IHRoaXMuX19kYXRhX19cbi8vICAgICBjb25zdCBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpXG4vL1xuLy8gICAgIGlmIChpbmRleCA8IDApIHtcbi8vICAgICAgIHJldHVybiBmYWxzZVxuLy8gICAgIH1cbi8vICAgICBjb25zdCBsYXN0SW5kZXggPSBkYXRhLmxlbmd0aCAtIDFcbi8vICAgICBpZiAoaW5kZXggPT0gbGFzdEluZGV4KSB7XG4vLyAgICAgICBkYXRhLnBvcCgpXG4vLyAgICAgfVxuLy8gICAgIGVsc2Uge1xuLy8gICAgICAgZGF0YS5zcGxpY2UoaW5kZXgsIDEpXG4vLyAgICAgfVxuLy8gICAgIC0tdGhpcy5zaXplXG4vLyAgICAgcmV0dXJuIHRydWVcbi8vICAgfVxuLy9cbi8vICAgLyoqXG4vLyAgICAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxuLy8gICAgKlxuLy8gICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4vLyAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuLy8gICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4vLyAgICAqL1xuLy8gICBnZXQoa2V5KSB7XG4vLyAgICAgY29uc3QgZGF0YSA9IHRoaXMuX19kYXRhX19cbi8vICAgICBjb25zdCBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpXG4vLyAgICAgcmV0dXJuIGluZGV4IDwgMCA/IHVuZGVmaW5lZCA6IGRhdGFbaW5kZXhdWzFdXG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBDaGVja3MgaWYgYSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4vLyAgICAqXG4vLyAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbi8vICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbi8vICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbi8vICAgICovXG4vLyAgIGhhcyhrZXkpIHtcbi8vICAgICByZXR1cm4gYXNzb2NJbmRleE9mKHRoaXMuX19kYXRhX18sIGtleSkgPiAtMVxuLy8gICB9XG4vL1xuLy8gICAvKipcbi8vICAgICogU2V0cyB0aGUgbGlzdCBjYWNoZSBga2V5YCB0byBgdmFsdWVgLlxuLy8gICAgKlxuLy8gICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4vLyAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuLy8gICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4vLyAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGxpc3QgY2FjaGUgaW5zdGFuY2UuXG4vLyAgICAqL1xuLy8gICBzZXQoa2V5LCB2YWx1ZSkge1xuLy8gICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9fZGF0YV9fXG4vLyAgICAgY29uc3QgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KVxuLy9cbi8vICAgICBpZiAoaW5kZXggPCAwKSB7XG4vLyAgICAgICArK3RoaXMuc2l6ZVxuLy8gICAgICAgZGF0YS5wdXNoKFtrZXksIHZhbHVlXSlcbi8vICAgICB9XG4vLyAgICAgZWxzZSB7XG4vLyAgICAgICBkYXRhW2luZGV4XVsxXSA9IHZhbHVlXG4vLyAgICAgfVxuLy8gICAgIHJldHVybiB0aGlzXG4vLyAgIH1cbi8vIH1cbi8vXG4vLyBtb2R1bGUuZXhwb3J0cyA9IExpc3RDYWNoZVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9