travetto: Cache
Install: primary
$ npm install @travetto/cache
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.
Code: Using decorators to cache expensive async call
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:
name
the name of the cache spacedispose
the function to invoke on cache evictionkeyFn
the function used to determine the cache key, defaults to all params serialized to a stringmax
the maximum number of elements that the cache will hold before evictionmaxAge
the longest time an element is allowed to live before eviction. Defaults to infinite.