UNPKG

@awesome-compressor/browser-compress-image

Version:

🚀 A powerful, lightweight browser image compression library with TypeScript support. Compress JPEG, PNG, GIF images with multiple output formats (Blob, File, Base64, ArrayBuffer) and zero dependencies.

1 lines • 1.2 kB
import{__esmMin as e}from"./chunk-BFNP_Rck.js";import{init_logger as t,logger_default as n}from"./logger-C7b05YKe.js";var r,i=e(()=>{t(),r=class{cache;maxSize;constructor(e=50){this.cache=new Map,this.maxSize=e}get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){let e=this.cache.keys().next().value;e!==void 0&&(this.cache.delete(e),n.log(`LRU Cache: Removed least recently used entry for key: ${String(e)}`))}this.cache.set(e,t)}has(e){return this.cache.has(e)}clear(){this.cache.clear()}get size(){return this.cache.size}get maxCapacity(){return this.maxSize}setMaxSize(e){for(this.maxSize=e;this.cache.size>this.maxSize;){let e=this.cache.keys().next().value;e!==void 0&&(this.cache.delete(e),n.log(`LRU Cache: Removed entry due to size reduction: ${String(e)}`))}}entries(){return this.cache.entries()}keys(){return this.cache.keys()}values(){return this.cache.values()}delete(e){return this.cache.delete(e)}getStats(){return{size:this.cache.size,maxSize:this.maxSize,usageRate:this.cache.size/this.maxSize*100}}}});export{r as LRUCache,i as init_lruCache};