Typescript/Javascript cache with expiration
npm install @avanio/expire-cache



!github action
Typescript/Javascript cache interfaces and expiration cache class.
This package contains:
- _ICache_ a common cache interface
- _IAsyncCache_ a common async cache interface
- _ICacheOrAsync_ a type for both cache interfaces
- _ExpireCache_ a class which implements the ICache interface with value expiration
``typescript
import {ICache, ExpireCache, ExpireTimeoutCache} from '@avanio/expire-cache';
const cache = new ExpireCache
const cache = new ExpireTimeoutCache
cache.onClear((cleared) => {
for (const [key, value] of cleared.entries()) {
console.log(key ${String(key)} expired, deleted or clear with value ${value});
}
});
cache.add('key', 'value', new Date(Date.now() + 1000)); // expires in 1000ms
cache.add('key2', 'value2'); // never expires (if no default expiration is set)
cache.get('key'); // 'value'
cache.has('key'); // true
cache.delete('key');
cache.clear();
cache.size(); // 1
function useCache(cache: ICache
const value = cache.get('key'); // 'value'
}
`
`typescript
import {ICacheOrAsync} from '@avanio/expire-cache';
function useCache(cache: ICacheOrAsync
const value = await cache.get('key'); // 'value'
}
`
`typescript`
const cache = new ExpireCache
get: LogLevel.Info,
set: LogLevel.Info,
});
`typescript``
const cache = new ExpireCache