@openteamsinc/caching-client
v0.1.6
Published
Example Caching Client (HTTP Client using the Cache API). This example cache any request that is made using the available functions.
Downloads
22
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