1.0.3
Added a cacheModifier
parameter to the Cacheable configuration.
It can be used as a way to access the cached data for the decorated method and modify it.
You can get access to the cached data and change it by providing a cacheModifier
subject to your decorator like this:
const cacheModifier = new Subject<any>();
@Cacheable({
cacheModifier
})
getMutableData(parameter: string) {
return this.getData(parameter);
}
Then, say you want to change the cached data somewhere in your code.
You can emit a callback through the cacheModifier
subject, which will be called upon all your cached data for this decorator, by:
cacheModifier.next((data: any[]) => {
data.find(p => p.parameters[0] === 'test').response.payload = 'test_modified';
return data;
});
What happens here is that we look for the cache under the 'test'
parameter here and modify it to a different string.
data
is all the caches for this method so you can change it in whatever way you want.
Now, if this method is called with the same parameter as before, it will still return cached data, but this time modified.
You can also delete and add more data to the cache.