Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tiny-lru

Package Overview
Dependencies
Maintainers
1
Versions
102
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tiny-lru - npm Package Compare versions

Comparing version 10.4.1 to 11.0.0

dist/tiny-lru.umd.js

20

dist/tiny-lru.js

@@ -6,5 +6,7 @@ /**

* @license BSD-3-Clause
* @version 10.4.1
* @version 11.0.0
*/
(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports):typeof define==='function'&&define.amd?define(['exports'],f):(g=typeof globalThis!=='undefined'?globalThis:g||self,f(g.lru={}));})(this,(function(exports){'use strict';class LRU {
function has (items, key) {
return key in items;
}class LRU {
constructor (max = 0, ttl = 0, resetTtl = false) {

@@ -30,3 +32,3 @@ this.first = null;

delete (key) {
if (this.#has(key)) {
if (has(this.items, key)) {
const item = this.items[key];

@@ -78,3 +80,3 @@

if (this.#has(key)) {
if (has(this.items, key)) {
result = this.items[key].expiry;

@@ -89,3 +91,3 @@ }

if (this.#has(key)) {
if (has(this.items, key)) {
const item = this.items[key];

@@ -104,6 +106,2 @@

#has (key) {
return key in this.items;
}
keys () {

@@ -116,3 +114,3 @@ return Object.keys(this.items);

if (bypass || this.#has(key)) {
if (bypass || has(this.items, key)) {
item = this.items[key];

@@ -186,2 +184,2 @@ item.value = value;

return new LRU(max, ttl, resetTtl);
}exports.lru=lru;}));
}export{lru};
/*!
2023 Jason Mulligan <jason.mulligan@avoidwork.com>
@version 10.4.1
@version 11.0.0
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).lru={})}(this,(function(t){"use strict";class e{constructor(t=0,e=0,s=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.resetTtl=s,this.size=0,this.ttl=e}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(t){if(this.#t(t)){const e=this.items[t];delete this.items[t],this.size--,null!==e.prev&&(e.prev.next=e.next),null!==e.next&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),this.last===e&&(this.last=e.prev)}return this}evict(t=!1){if(t||this.size>0){const t=this.first;delete this.items[t.key],0==--this.size?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}expiresAt(t){let e;return this.#t(t)&&(e=this.items[t].expiry),e}get(t){let e;if(this.#t(t)){const s=this.items[t];this.ttl>0&&s.expiry<=Date.now()?this.delete(t):(e=s.value,this.set(t,e,!0))}return e}#t(t){return t in this.items}keys(){return Object.keys(this.items)}set(t,e,s=!1,i=this.resetTtl){let l;if(s||this.#t(t)){if(l=this.items[t],l.value=e,i&&(l.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==l){const t=this.last,e=l.next,s=l.prev;this.first===l&&(this.first=l.next),l.next=null,l.prev=this.last,t.next=l,null!==s&&(s.next=e),null!==e&&(e.prev=s)}}else this.max>0&&this.size===this.max&&this.evict(!0),l=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},1==++this.size?this.first=l:this.last.next=l;return this.last=l,this}}t.lru=function(t=1e3,s=0,i=!1){if(isNaN(t)||t<0)throw new TypeError("Invalid max value");if(isNaN(s)||s<0)throw new TypeError("Invalid ttl value");if("boolean"!=typeof i)throw new TypeError("Invalid resetTtl value");return new e(t,s,i)}}));//# sourceMappingURL=tiny-lru.min.js.map
function t(t,s){return s in t}class s{constructor(t=0,s=0,e=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.resetTtl=e,this.size=0,this.ttl=s}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(s){if(t(this.items,s)){const t=this.items[s];delete this.items[s],this.size--,null!==t.prev&&(t.prev.next=t.next),null!==t.next&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),this.last===t&&(this.last=t.prev)}return this}evict(t=!1){if(t||this.size>0){const t=this.first;delete this.items[t.key],0==--this.size?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}expiresAt(s){let e;return t(this.items,s)&&(e=this.items[s].expiry),e}get(s){let e;if(t(this.items,s)){const t=this.items[s];this.ttl>0&&t.expiry<=Date.now()?this.delete(s):(e=t.value,this.set(s,e,!0))}return e}keys(){return Object.keys(this.items)}set(s,e,i=!1,l=this.resetTtl){let h;if(i||t(this.items,s)){if(h=this.items[s],h.value=e,l&&(h.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==h){const t=this.last,s=h.next,e=h.prev;this.first===h&&(this.first=h.next),h.next=null,h.prev=this.last,t.next=h,null!==e&&(e.next=s),null!==s&&(s.prev=e)}}else this.max>0&&this.size===this.max&&this.evict(!0),h=this.items[s]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:s,prev:this.last,next:null,value:e},1==++this.size?this.first=h:this.last.next=h;return this.last=h,this}}function e(t=1e3,e=0,i=!1){if(isNaN(t)||t<0)throw new TypeError("Invalid max value");if(isNaN(e)||e<0)throw new TypeError("Invalid ttl value");if("boolean"!=typeof i)throw new TypeError("Invalid resetTtl value");return new s(t,e,i)}export{e as lru};//# sourceMappingURL=tiny-lru.min.js.map
{
"name": "tiny-lru",
"description": "Tiny LRU cache for Client or Server",
"version": "10.4.1",
"version": "11.0.0",
"homepage": "https://github.com/avoidwork/tiny-lru",

@@ -20,6 +20,8 @@ "author": "Jason Mulligan <jason.mulligan@avoidwork.com>",

"source": "src/lru.js",
"main": "dist/tiny-lru.cjs",
"module": "dist/tiny-lru.esm.js",
"main": "dist/tiny-lru",
"exports": {
"import": "./dist/tiny-lru.js",
"require": "./dist/tiny-lru.cjs"
},
"type": "module",
"sourceType": "module",
"types": "lru.d.ts",

@@ -31,6 +33,6 @@ "engines": {

"scripts": {
"build": "npm run lint && rm -rf dist/* && npm run rollup && npm run mocha",
"build": "npm run lint && npm run rollup && npm run mocha",
"benchmark": "node benchmark.js",
"changelog": "auto-changelog -p",
"lint": "eslint *.js src/*.js test/*.js",
"lint": "eslint --fix *.js src/*.js test/*.js",
"mocha": "mocha test/*.js",

@@ -37,0 +39,0 @@ "rollup": "rollup --config",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc