{"version":3,"sources":["jsdelivr-header.js","/npm/lru-cache-node@1.1.0/src/index.js"],"names":[],"mappings":"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","file":"/npm/lru-cache-node@1.1.0/src/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/lru-cache-node@1.1.0/src/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","class Cache {\n\n\tconstructor(limit, maxAge, stale) {\n\t\tthis.size = 0;\n\t\tthis.limit = typeof limit === 'number' ? limit : Infinity;\n\t\tthis.maxAge = typeof maxAge === 'number' ? maxAge : Infinity;\n\t\tthis.stale = typeof stale === 'boolean' ? stale : false;\n\t\tthis.hashMap = {};\n\t\tthis.head = null;\n\t\tthis.tail = null;\n\t}\n\n\t/* Three steps :\n\t\t1. Make node's next to current head\n\t\t2. Make head's previous to node\n\t\t3. Make head as the node\n\t */\n\tsetNodeAsHead(node) {\n\t\tnode.next = this.head;\n\t\tnode.prev = null;\n\t\tif (this.head !== null)\n\t\t\tthis.head.prev = node;\n\t\tthis.head = node;\n\t\tif (this.tail === null) {\n\t\t\tthis.tail = node;\n\t\t}\n\t\tthis.size += 1;\n\t\tthis.hashMap[node.content.key] = node\n\t}\n\n\tset(key, value, maxAge) {\n\t\tmaxAge = typeof maxAge === 'number' ? maxAge : this.maxAge;\n\t\tconst node = new Node(key, value, maxAge, Date.now() + maxAge);\n\t\tif (this.size >= this.limit) {\n\t\t\tdelete this.hashMap[this.tail.content.key];\n\t\t\tthis.size -= 1;\n\t\t\tthis.tail = this.tail.prev;\n\t\t\tthis.tail.next = null;\n\t\t}\n\t\tthis.setNodeAsHead(node);\n\t}\n\n\tremove(node) {\n\t\tif (node.prev !== null) {\n\t\t\tnode.prev.next = node.next;\n\t\t} else {\n\t\t\tthis.head = node.next;\n\t\t}\n\t\tif (node.next !== null) {\n\t\t\tnode.next.prev = node.prev;\n\t\t} else {\n\t\t\tthis.tail = node.prev;\n\t\t}\n\t\tdelete this.hashMap[node.getKey()];\n\t\tthis.size -= 1;\n\t}\n\n\tget(key) {\n\t\tconst oldNode = this.hashMap[key];\n\t\tif (oldNode) {\n\t\t\tconst value = oldNode.getValue();\n\t\t\tconst nodeMaxAge = oldNode.getMaxAge();\n\t\t\tconst maxAge = typeof nodeMaxAge === 'number' ? nodeMaxAge : this.maxAge;\n\t\t\tif (Date.now() >= oldNode.getExpiry()) {\n\t\t\t\tthis.remove(oldNode);\n\t\t\t\treturn this.stale ? oldNode.getValue() : null\n\t\t\t}\n\t\t\tconst newNode = new Node(key, value, maxAge, Date.now() + maxAge);\n\t\t\tthis.remove(oldNode);\n\t\t\tthis.setNodeAsHead(newNode);\n\t\t\treturn value\n\t\t}\n\t\treturn null\n\t}\n\n\tpeek(key) {\n\t\treturn this.hashMap[key] ? this.hashMap[key].getValue() : null\n\t}\n\n\treset() {\n\t\tthis.size = 0;\n\t\tthis.hashMap = {};\n\t\tthis.head = null;\n\t\tthis.tail = null;\n\t}\n\n\ttoArray() {\n\t\tconst arr = [];\n\t\tlet node = this.head;\n\t\twhile (node) {\n\t\t\tarr.push({\n\t\t\t\tkey: node.getKey(),\n\t\t\t\tvalue: node.getValue()\n\t\t\t});\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn arr;\n\t}\n\n\tcontains(key) {\n\t\treturn !!this.hashMap[key]\n\t}\n\n  has(key) {\n    return this.contains(key);\n  }\n\n\tforEach(callback) {\n\t\tlet node = this.head;\n\t\tlet i = 0;\n\t\twhile (node) {\n\t\t\tcallback.apply(this, [node.getKey(), node.getValue(), i]);\n\t\t\ti++;\n\t\t\tnode = node.next;\n\t\t}\n\t}\n\n\tgetSize() {\n\t\treturn this.size\n\t}\n\n\tdelete(key) {\n\t\tconst node = this.hashMap[key];\n\t\tthis.remove(node)\n\t}\n}\n\nclass Node {\n\tconstructor(key, value, maxAge, expires) {\n\t\tif (key === undefined)\n\t\t\tthrow new Error(\"Key not provided\");\n\t\tif (value === undefined)\n\t\t\tthrow new Error(\"Value not provided\");\n\t\tthis.content = {key, value};\n\t\tthis.prev = null;\n\t\tthis.next = null;\n\t\tthis.maxAge = typeof maxAge === 'number' ? maxAge : Infinity;\n\t\tthis.expires = typeof expires === 'number' ? expires : Infinity;\n\t}\n\n\tgetValue() {\n\t\treturn this.content.value\n\t}\n\n\tgetMaxAge() {\n\t\treturn this.maxAge\n\t}\n\n\tgetExpiry() {\n\t\treturn this.expires\n\t}\n\n\tgetKey() {\n\t\treturn this.content.key\n\t}\n}\n\nmodule.exports = Cache;\n"]}