The API should be considered beta stability. It might still change in future in a backward incompatible manner.
require('./vendor/mage2tv/magento-cache-clean/export/watcher');
const mageBaseDir = './';
const logLevel = 2; // Log Levels: {debug: 3, info: 2, notice: 1, error: 0}
cache.watcher.watch(mageBaseDir, logLevel);
First, the file with the exported functions needs to be included.
Assuming the package is installed as a Magento development composer dependency, and the current working directory is that Magento base dir, the functions can be imported into the global namespace via:
require('./vendor/mage2tv/magento-cache-clean/export/watcher');
Since the watcher is not a native node application, the exports are global functions on the cache.watcher
pseudo "namespace".
All exported functions take the Magento base directory path as the first argument. The path can be relative to the current working directory, or it can be an absolute path.
The second argument to all exported functions is the log level.
The log level is specified as an integer as follows:
Name | Level |
---|---|
Error | 0 |
Notice | 1 |
Info | 2 |
Debug | 3 |
The higher the number, the more verbose will the output be.
(The default log level when the watcher is used from the command line is 1
).
After loading the code, the watcher can be started with the watch
function:
cache.watcher.watch('/path/to/magento', logLevel);
Cache tags or types can be cleaned with the cleanTags
function.
If a type is specified - e.g. full_page
, it will automatically be translated into the matching cache tags (e.g. FPC
).
If a string is not recognized as a cache type, it will be used as a cache tag.
cache.watcher.cleanTags('/path/to/magento', logLevel, ...tags);
The cache types in a native 2.3.4 Magento Open Source installation are:
config
layout
block_html
collections
reflection
db_ddl
compiled_config
eav
customer_notification
config_integration
google_product
full_page
config_webservice
translate
You can get the list for your instance with the command bin/magento cache:status
The Layout, Block and Full Page Cache can be cleaned like this:
const types = ['layout', 'block_html', 'full_page'];
cache.watcher.cleanTags(baseDir, logLevel, ...types);
Individual cache records can be cleaned by specifying the cache IDs as arguments to the cleanIds
function.
cache.watcher.cleanIds('/path/to/magento', logLevel, ...ids);
const ids = ['global__event_config_cache', 'webapi_config'];
cache.watcher.cleanTags(baseDir, logLevel, ...ids);
The complete cache storage can be cleaned with the cleanAll
function.
cache.watcher.cleanAll('/path/to/magento', logLevel);
Please note that the API still might change in a backward incompatible manner based on user feedback.