delete()

in packages/shared/src/lru.ts [181:208]


  delete(key: any) {
    const entry = this._keymap.get(key)
    if (!entry) {
      return
    }
    this._keymap.delete(entry.key)
    if (entry[NEWER] && entry[OLDER]) {
      // relink the older entry with the newer entry
      entry[OLDER][NEWER] = entry[NEWER]
      entry[NEWER][OLDER] = entry[OLDER]
    } else if (entry[NEWER]) {
      // remove the link to us
      entry[NEWER][OLDER] = undefined
      // link the newer entry to head
      this.oldest = entry[NEWER]
    } else if (entry[OLDER]) {
      // remove the link to us
      entry[OLDER][NEWER] = undefined
      // link the newer entry to head
      this.newest = entry[OLDER]
    } else {
      // if(entry[OLDER] === undefined && entry.newer === undefined) {
      this.oldest = this.newest = undefined
    }

    this.size--
    return entry.value
  }