This plugin can be used in a workbox-strategy to regularly enforce a
limit on the age and / or the number of cached requests.
It can only be used with workbox-strategy instances that have a
custom cacheName property set.
In other words, it can't be used to expire entries in strategy that uses the
default runtime cache name.
Whenever a cached request is used or updated, this plugin will look
at the associated cache and remove any old or extra requests.
When using maxAgeSeconds, requests may be used once after expiring
because the expiration clean up will not have occurred until after the
cached request has been used. If the request has a "Date" header, then
a light weight expiration check is performed and the request will not be
When using maxEntries, the entry least-recently requested will be removed
from the cache first.
Values in config have the following properties:
The maximum number of entries to cache.
Entries used the least will be removed as the maximum is reached.
The maximum age of an entry before
it's treated as stale and removed.
Whether to opt this cache in to
automatic deletion if the available storage quota has been exceeded.
This is a helper method that performs two operations:
Deletes all the underlying Cache instances associated with this plugin
instance, by calling caches.delete() on your behalf.
Deletes the metadata from IndexedDB used to keep track of expiration
details for each Cache instance.
When using cache expiration, calling this method is preferable to calling
caches.delete() directly, since this will ensure that the IndexedDB
metadata is also cleanly removed and open IndexedDB instances are deleted.
Note that if you're not using cache expiration for a given cache, calling
caches.delete() and passing in the cache's name should be sufficient.
There is no Workbox-specific method needed for cleanup in that case.