caching-client
v0.1.10
Published
Example Caching Client (HTTP Client using the Cache API). This example cache any request that is made using the available functions.
Downloads
1
Readme
Caching Client
Caching Client (HTTP Client using the Cache API).
Available functions
constructor
: Doingnew CachingClient
you can pass the following options:cacheVersion
: Default 1currentCache
: Default 'read-through'jsonSchemaRelHeader
: Default 'rel='describedBy''jsonSchemaEnvelopType
: Default 'https://api.openteams.com/json-schema/Envelope'
clearCache
: Removes any entry in the managed cache store.clearUnknownCache
: Removes any entry in caches not being managed by the client.Requests (
GET
,OPTIONS
,POST
,PUT
,DELETE
): Each request can be used calling its respective function (i.eget(...)
,options(...)
,post(...)
,put(...)
, anddelete(...)
).The parameters for the available functions are:
url
: URL to fetch.body
: Content of the request (in the case ofPOST
orPUT
requests).options
: To add or override the options used to fetch the given URL (headers
,mode
,method
, etc.). It is a key-value object. Also you can add ajson
option if you want to get the response JSON parsed body only i.e{json: true}
Build lib
To build a lib to be used in the browser you can use npm run build:lib
this will create the index.js
file that can be used from an HTML file with a script tag like <script type="text/javascript" src="index.js"></script>
Use the package
To use the package you need to install it from the source with something like npm install --save <path to source>
After that, you can use something like import CachingClient from 'caching-client'
Demo Setup
To play with the caching client you can use the http-server
package:
npm install http-server -g
And under the demo
directory:
http-server -p 3000
To build the demo after doing changes to the source code you can run npm run build:demo
Demo
- Follow the setup above.
- Go to http://localhost:3000
- Open the console in your browser.
- Create an instance of the Caching Client:
client = cachingClient.default()
- Run something like
await cachingClient.get("https://jsonplaceholder.typicode.com/users/1/todos", true)
. - Check with the browser devtools the Cache Storage section (in the case of Mozilla to update the cache view you need to close and reopen the devtool panel).
Resources checked
- https://jasonwatmore.com/post/2020/04/18/fetch-a-lightweight-fetch-wrapper-to-simplify-http-requests
- https://github.com/GoogleChrome/samples/tree/gh-pages/service-worker/read-through-caching
- https://gist.github.com/niallo/3109252#gistcomment-2883309
- https://stackoverflow.com/a/58209729