foop
Version:
interfaces that describe their intentions.
108 lines (105 loc) • 6.52 kB
JavaScript
/** @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