etag cache based on leveldb
npm install etag-cache-leveldb










etag cache based on leveldb
``js
import levelup from "levelup";
import leveldown from "leveldown";
import { ETagCacheLevelDB } from "etag-cache-leveldb";
const someDirectory = "/tmp";
const db = await levelup(leveldown(someDirectory));
const cache = new ETagCacheLevelDB(db);
const url = "https://api.github.com/";
const response = await fetch(url);
await cache.storeResponse(response);
// later
const headers = {};
await cache.addHeaders(url, headers); // fill in etag header
const responseWithETag = await fetch(url, { headers });
const cachedResponse = await cache.loadResponse(responseWithETag);
`
* ETagCacheLevelDB
* Parameters
* addHeaders
* Parameters
* statistics
* storeResponse
* Parameters
* loadResponse
* Parameters
* rawTagData
* Parameters
Stores etags and bodies into leveldb.
Reconstructs response with body if etag or url matches.
Will store in the cache:
url : etag
etag : body
* db
Adds the "If-None-Match" header if etag is found for the url.
#### Parameters
* url (string | URL) headers
* Object
Returns Promise<boolean> true if etag was found in cache and header has been added
Deliver statisics data.
Returns Object
Stores response in the cache.
Two entries are stored:
* url : etag
* etag : body
#### Parameters
* response Response as produced by fetch
Returns Promise\
Constructs a new Response feed from the cache if a matching etag is found in the cache.
#### Parameters
* response Response as provided by fetch
Strips away etag flags (weak and the like)
* etag` (string | null)