tiny-lru
Advanced tools
Comparing version 10.1.0 to 10.1.1
@@ -115,2 +115,6 @@ /** | ||
if (resetTtl) { | ||
item.expiry = this.ttl > 0 ? new Date().getTime() + this.ttl : this.ttl; | ||
} | ||
if (this.last !== item) { | ||
@@ -125,6 +129,2 @@ const last = this.last, | ||
if (resetTtl) { | ||
item.expiry = this.ttl > 0 ? new Date().getTime() + this.ttl : this.ttl; | ||
} | ||
item.next = null; | ||
@@ -131,0 +131,0 @@ item.prev = this.last; |
@@ -5,2 +5,2 @@ /*! | ||
*/ | ||
class t{constructor(t=0,s=0){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.size=0,this.ttl=s}#t(t){return t in this.items}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(t){if(this.#t(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}evict(t=!1){if(t||this.size>0){const t=this.first;delete this.items[t.key],this.size--,0===this.size?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}get(t){let s;if(this.#t(t)){const i=this.items[t];this.ttl>0&&i.expiry<=(new Date).getTime()?this.delete(t):(s=i.value,this.set(t,s,!0))}return s}expiresAt(t){let s;return this.#t(t)&&(s=this.items[t].expiry),s}keys(){return Object.keys(this.items)}set(t,s,i=!1,e=!1){let h;if(i||this.#t(t)){if(h=this.items[t],h.value=s,this.last!==h){const t=this.last,s=h.next,i=h.prev;this.first===h&&(this.first=h.next),e&&(h.expiry=this.ttl>0?(new Date).getTime()+this.ttl:this.ttl),h.next=null,h.prev=this.last,t.next=h,null!==i&&(i.next=s),null!==s&&(s.prev=i)}}else this.max>0&&this.size===this.max&&this.evict(!0),h=this.items[t]={expiry:this.ttl>0?(new Date).getTime()+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}}function s(s=1e3,i=0){if(isNaN(s)||s<0)throw new TypeError("Invalid max value");if(isNaN(i)||i<0)throw new TypeError("Invalid ttl value");return new t(s,i)}export{s as lru};//# sourceMappingURL=tiny-lru.esm.min.js.map | ||
class t{constructor(t=0,s=0){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.size=0,this.ttl=s}#t(t){return t in this.items}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(t){if(this.#t(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}evict(t=!1){if(t||this.size>0){const t=this.first;delete this.items[t.key],this.size--,0===this.size?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}get(t){let s;if(this.#t(t)){const i=this.items[t];this.ttl>0&&i.expiry<=(new Date).getTime()?this.delete(t):(s=i.value,this.set(t,s,!0))}return s}expiresAt(t){let s;return this.#t(t)&&(s=this.items[t].expiry),s}keys(){return Object.keys(this.items)}set(t,s,i=!1,e=!1){let h;if(i||this.#t(t)){if(h=this.items[t],h.value=s,e&&(h.expiry=this.ttl>0?(new Date).getTime()+this.ttl:this.ttl),this.last!==h){const t=this.last,s=h.next,i=h.prev;this.first===h&&(this.first=h.next),h.next=null,h.prev=this.last,t.next=h,null!==i&&(i.next=s),null!==s&&(s.prev=i)}}else this.max>0&&this.size===this.max&&this.evict(!0),h=this.items[t]={expiry:this.ttl>0?(new Date).getTime()+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}}function s(s=1e3,i=0){if(isNaN(s)||s<0)throw new TypeError("Invalid max value");if(isNaN(i)||i<0)throw new TypeError("Invalid ttl value");return new t(s,i)}export{s as lru};//# sourceMappingURL=tiny-lru.esm.min.js.map |
@@ -115,2 +115,6 @@ /** | ||
if (resetTtl) { | ||
item.expiry = this.ttl > 0 ? new Date().getTime() + this.ttl : this.ttl; | ||
} | ||
if (this.last !== item) { | ||
@@ -125,6 +129,2 @@ const last = this.last, | ||
if (resetTtl) { | ||
item.expiry = this.ttl > 0 ? new Date().getTime() + this.ttl : this.ttl; | ||
} | ||
item.next = null; | ||
@@ -131,0 +131,0 @@ item.prev = this.last; |
@@ -5,2 +5,2 @@ /*! | ||
*/ | ||
!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){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.size=0,this.ttl=e}#t(t){return t in this.items}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],this.size--,0===this.size?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}get(t){let e;if(this.#t(t)){const s=this.items[t];this.ttl>0&&s.expiry<=(new Date).getTime()?this.delete(t):(e=s.value,this.set(t,e,!0))}return e}expiresAt(t){let e;return this.#t(t)&&(e=this.items[t].expiry),e}keys(){return Object.keys(this.items)}set(t,e,s=!1,i=!1){let l;if(s||this.#t(t)){if(l=this.items[t],l.value=e,this.last!==l){const t=this.last,e=l.next,s=l.prev;this.first===l&&(this.first=l.next),i&&(l.expiry=this.ttl>0?(new Date).getTime()+this.ttl:this.ttl),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?(new Date).getTime()+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){if(isNaN(t)||t<0)throw new TypeError("Invalid max value");if(isNaN(s)||s<0)throw new TypeError("Invalid ttl value");return new e(t,s)}}));//# sourceMappingURL=tiny-lru.min.js.map | ||
!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){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.size=0,this.ttl=e}#t(t){return t in this.items}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],this.size--,0===this.size?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}get(t){let e;if(this.#t(t)){const s=this.items[t];this.ttl>0&&s.expiry<=(new Date).getTime()?this.delete(t):(e=s.value,this.set(t,e,!0))}return e}expiresAt(t){let e;return this.#t(t)&&(e=this.items[t].expiry),e}keys(){return Object.keys(this.items)}set(t,e,s=!1,i=!1){let l;if(s||this.#t(t)){if(l=this.items[t],l.value=e,i&&(l.expiry=this.ttl>0?(new Date).getTime()+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?(new Date).getTime()+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){if(isNaN(t)||t<0)throw new TypeError("Invalid max value");if(isNaN(s)||s<0)throw new TypeError("Invalid ttl value");return new e(t,s)}}));//# sourceMappingURL=tiny-lru.min.js.map |
{ | ||
"name": "tiny-lru", | ||
"description": "Tiny LRU cache for Client or Server", | ||
"version": "10.1.0", | ||
"version": "10.1.1", | ||
"homepage": "https://github.com/avoidwork/tiny-lru", | ||
@@ -37,3 +37,2 @@ "author": "Jason Mulligan <jason.mulligan@avoidwork.com>", | ||
"test": "npm run lint && npm run mocha", | ||
"test-webpack": "rm -rf test/webpack && git clone git@github.com:rabelais88/typescript-webpack.git test/webpack && echo \"import { lru } from 'tiny-lru';console.log(lru(1));\" >> test/webpack/src/index.ts && cd test/webpack && npm install && mkdir -p node_modules/tiny-lru/dist && cp ../../package.json node_modules/tiny-lru/ && cp ../../dist/* node_modules/tiny-lru/dist/ && npm run build", | ||
"types": "npx -p typescript tsc src/lru.js --declaration --allowJs --emitDeclarationOnly --outDir ." | ||
@@ -40,0 +39,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
32454