Socket
Socket
Sign inDemoInstall

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 11.2.6 to 11.2.7

2

dist/tiny-lru.js

@@ -6,3 +6,3 @@ /**

* @license BSD-3-Clause
* @version 11.2.6
* @version 11.2.7
*/

@@ -9,0 +9,0 @@ class LRU {

/*!
2024 Jason Mulligan <jason.mulligan@avoidwork.com>
@version 11.2.6
@version 11.2.7
*/
class t{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(t){if(this.has(t)){const s=this.items[t];delete this.items[t],this.size--,null!==s.prev&&(s.prev.next=s.next),null!==s.next&&(s.next.prev=s.prev),this.first===s&&(this.first=s.next),this.last===s&&(this.last=s.prev)}return this}entries(t=this.keys()){return t.map((t=>[t,this.get(t)]))}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 s;return this.has(t)&&(s=this.items[t].expiry),s}get(t){let s;if(this.has(t)){const e=this.items[t];this.ttl>0&&e.expiry<=Date.now()?this.delete(t):(s=e.value,this.set(t,s,!0))}return s}has(t){return t in this.items}keys(){const t=[];let s=this.first;for(;null!==s;)t.push(s.key),s=s.next;return t}set(t,s,e=!1,i=this.resetTtl){let h;if(e||this.has(t)){if(h=this.items[t],h.value=s,!1===e&&i&&(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[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:s},1==++this.size?this.first=h:this.last.next=h;return this.last=h,this}values(t=this.keys()){return t.map((t=>this.get(t)))}}function s(s=1e3,e=0,i=!1){if(isNaN(s)||s<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 t(s,e,i)}export{t as LRU,s as lru};//# sourceMappingURL=tiny-lru.min.js.map

@@ -6,3 +6,3 @@ /**

* @license BSD-3-Clause
* @version 11.2.6
* @version 11.2.7
*/

@@ -9,0 +9,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 {

/*!
2024 Jason Mulligan <jason.mulligan@avoidwork.com>
@version 11.2.6
@version 11.2.7
*/
!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.has(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}entries(t=this.keys()){return t.map((t=>[t,this.get(t)]))}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.has(t)&&(e=this.items[t].expiry),e}get(t){let e;if(this.has(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}has(t){return t in this.items}keys(){const t=[];let e=this.first;for(;null!==e;)t.push(e.key),e=e.next;return t}set(t,e,s=!1,i=this.resetTtl){let l;if(s||this.has(t)){if(l=this.items[t],l.value=e,!1===s&&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}values(t=this.keys()){return t.map((t=>this.get(t)))}}t.LRU=e,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.umd.min.js.map
export function lru<T = any>(max?: number, ttl?: number, resetTtl?: boolean): LRU<T>;
export interface LRU<T> {
export class LRU<T> {
constructor(max?: number, ttl?: number, resetTtl?: boolean);
first: T | null;
items: Record<any, T>;
last: T | null;

@@ -9,13 +11,12 @@ max: number;

ttl: number;
clear(): this;
delete(key: any): this;
entries(keys?: any[]): [any, T][];
evict(bypass?: boolean): this;
expiresAt(key: any): number | undefined;
get(key: any): T | undefined;
has(key: any): boolean;
get(key: any): T | undefined;
keys(): string[];
keys(): any[];
set(key: any, value: T, bypass?: boolean, resetTtl?: boolean): this;
values(keys?: any[]): T[];
}
export { };
{
"name": "tiny-lru",
"description": "Tiny LRU cache for Client or Server",
"version": "11.2.6",
"version": "11.2.7",
"homepage": "https://github.com/avoidwork/tiny-lru",

@@ -44,11 +44,11 @@ "author": "Jason Mulligan <jason.mulligan@avoidwork.com>",

"devDependencies": {
"@rollup/plugin-terser": "^0.4.3",
"@rollup/plugin-terser": "^0.4.4",
"auto-changelog": "^2.4.0",
"eslint": "^8.49.0",
"husky": "^9.0.1",
"mocha": "^10.2.0",
"nyc": "^15.1.0",
"eslint": "^9.6.0",
"husky": "^9.0.11",
"mocha": "^10.6.0",
"nyc": "^17.0.0",
"precise": "^4.0.3",
"rollup": "^4.0.0",
"typescript": "^5.2.2"
"rollup": "^4.18.0",
"typescript": "^5.5.3"
},

@@ -55,0 +55,0 @@ "keywords": [

@@ -44,4 +44,4 @@ # Tiny LRU

--------------|---------|----------|---------|---------|-------------------
All files | 100 | 89.85 | 100 | 100 |
tiny-lru.cjs | 100 | 89.85 | 100 | 100 | 11-31,130-138,172
All files | 100 | 91.54 | 100 | 100 |
tiny-lru.cjs | 100 | 91.54 | 100 | 100 | 11-31,150,184
--------------|---------|----------|---------|---------|-------------------

@@ -48,0 +48,0 @@ ```

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