Provides a simple wrapper around lru-cache to provide standard caching constructs.
@Cacheable is a decorator that allows caching at class methods. The decorator will rewrite the method to cache on successful results. The decorator supports synchronous as well as asynchronous methods.
class Worker {
@Cacheable({ max: 1000 })
async calculateExpensiveResult(expression: string) {
const value = await request(`https://google.com?q=${expression}`);
return value;
}
}The @Cacheable decorator supports certain configurations:
namethe name of the cache spacedisposethe function to invoke on cache evictionkeyFnthe function used to determine the cache key, defaults to all params serialized to a stringmaxthe maximum number of elements that the cache will hold before evictionmaxAgethe longest time an element is allowed to live before eviction. Defaults to infinite.