source: frontend/node_modules/semver/internal/lrucache.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 11 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 802 bytes
Line 
1'use strict'
2
3class LRUCache {
4 constructor () {
5 this.max = 1000
6 this.map = new Map()
7 }
8
9 get (key) {
10 const value = this.map.get(key)
11 if (value === undefined) {
12 return undefined
13 } else {
14 // Remove the key from the map and add it to the end
15 this.map.delete(key)
16 this.map.set(key, value)
17 return value
18 }
19 }
20
21 delete (key) {
22 return this.map.delete(key)
23 }
24
25 set (key, value) {
26 const deleted = this.delete(key)
27
28 if (!deleted && value !== undefined) {
29 // If cache is full, delete the least recently used item
30 if (this.map.size >= this.max) {
31 const firstKey = this.map.keys().next().value
32 this.delete(firstKey)
33 }
34
35 this.map.set(key, value)
36 }
37
38 return this
39 }
40}
41
42module.exports = LRUCache
Note: See TracBrowser for help on using the repository browser.