UNPKG

@visulima/string

Version:

Functions for manipulating strings.

2 lines (1 loc) 850 B
var i=Object.defineProperty;var r=(h,e)=>i(h,"name",{value:e,configurable:!0});var c=Object.defineProperty,a=r((h,e)=>c(h,"name",{value:e,configurable:!0}),"c");class y{static{r(this,"s")}static{a(this,"LRUCache")}capacity;cache;keyOrder;constructor(e){this.capacity=e,this.cache=new Map,this.keyOrder=[]}get(e){if(this.cache.has(e))return this.keyOrder=this.keyOrder.filter(t=>t!==e),this.keyOrder.push(e),this.cache.get(e)}has(e){return this.cache.has(e)}set(e,t){if(this.cache.has(e))this.keyOrder=this.keyOrder.filter(s=>s!==e);else if(this.cache.size>=this.capacity){const s=this.keyOrder.shift();s!==void 0&&this.cache.delete(s)}this.cache.set(e,t),this.keyOrder.push(e)}delete(e){this.cache.delete(e),this.keyOrder=this.keyOrder.filter(t=>t!==e)}clear(){this.cache.clear(),this.keyOrder=[]}size(){return this.cache.size}}export{y as default};