Undici exposes a W3C spec-compliant implementation of CacheStorage and Cache.
Undici exports a top-level CacheStorage instance. You can open a new Cache, or duplicate a Cache with an existing name, by using CacheStorage.prototype.open
. If you open a Cache with the same name as an already-existing Cache, its list of cached Responses will be shared between both instances.
import { caches } from 'undici' const cache_1 = await caches.open('v1') const cache_2 = await caches.open('v1') // Although .open() creates a new instance, assert(cache_1 !== cache_2) // The same Response is matched in both. assert.deepStrictEqual(await cache_1.match('/req'), await cache_2.match('/req'))
If a Cache is deleted, the cached Responses/Requests can still be used.
const response = await cache_1.match('/req') await caches.delete('v1') await response.text() // the Response's body