Plugins
Plugins for stash-it are things that can influence the data that flows through cache instance's methods. Plugins can also add new functionality (extend the API).
A plugin is an object that consists of, at least, one property: hooks
and / or createExtensions
. Here is an example of full grown plugin (without the body):
{
hooks: [],
createExtensions: ({ cacheInstance, getPreData, getPostData }) => {}
}
How to use a plugin? What do I get from it?
If you take for example stash-it-plugin-debug you gain two things (read more on this plugin's repo page):
Data that flows in, through and out of each cache's method is going to be tracked (using passed callback, e.g.
console.log
).Adds new method
runDiangnostics()
.
Here's how you use it:
import createDebugPlugin from 'stash-it-plugin-debug';
// assuming that you already have cache instance
const debugPlugin = createDebugPlugin(console.log);
const cacheWithPlugins = cache.registerPlugins([ debugPlugin ]);
// without the plugin, this method would not be here
cacheWithPlugins.runDiagnostics(); // runs the diagnostics
cache.runDiagnostics(); // error, runDiagnostics is not a function
Last updated