From 4cfa8d005e6ec33ba56e09d26c21ad8a50c28bad Mon Sep 17 00:00:00 2001 From: arthurfiorette Date: Wed, 5 Jan 2022 18:19:48 -0300 Subject: [PATCH] examples: updated runkit example --- examples/runkit.js | 65 +++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/examples/runkit.js b/examples/runkit.js index d51b0de..c52a6f8 100644 --- a/examples/runkit.js +++ b/examples/runkit.js @@ -1,53 +1,51 @@ +//@ts-check + /* eslint-disable @typescript-eslint/no-var-requires */ const { create: createAxios } = require('axios').default; const { setupCache } = require('axios-cache-interceptor'); +const { log } = console; -async function main() { +(async () => { const axios = setupCache( // creating axios instance - createAxios({ - baseUrl: 'https://registry.npmjs.org/' - }), - + createAxios({ baseURL: 'https://registry.npmjs.org/' }), // configuring the cache - { - ttl: 99999, - - // Parse the Cache-Control header to determine the cache strategy - interpretHeader: true - } + { ttl: 99999, interpretHeader: true } ); const fetchedResponse = await axios.get('/axios-cache-interceptor'); + // fetchedResponse.cached == false + + // + // The next request won't do a network request, because the response is already cached + // - // This won't made a network request, because the response is already cached const cachedResponse = await axios.get('/axios-cache-interceptor'); + // cachedResponse.cached == true - console.log('First request was cached?'); - console.log(fetchedResponse.cached, '\n'); + log(`First request was ${fetchedResponse.cached ? 'cached' : 'fetched'}`); + log(`Second request was ${cachedResponse.cached ? 'cached' : 'fetched'}`); - console.log('Second request was cached?'); - console.log(cachedResponse.cached, '\n'); + // + // The interpretHeader option used a different strategy, see the received Cache-Control header + // (server may return undefined if this is the first request in a while :)) + // - console.log('The interpretHeader option used a different strategy', '\n'); - console.log('See the received Cache-Control header'); - console.log(fetchedResponse.headers['cache-control'], '\n'); - console.log('And also the received Age header'); - console.log(fetchedResponse.headers['age'], '\n'); + log(`Fetched response Cache-Control: ${fetchedResponse.headers['cache-control']}`); + log(`Fetched response Age: ${fetchedResponse.headers['age']}`); const cacheInformation = await axios.storage.get(fetchedResponse.id); - console.log( - 'As you can see, the TTL used was the maxAge cache directive minus the Age header', - '\n' - ); - console.log('See the time to live in the cache: '); - console.log(cacheInformation.ttl, '\n'); + // + // As you can see, the TTL used was the maxAge cache directive minus the Age header + // - console.log( - "If you disable the interpretHeader option you'll see that the TTL will be the default (99999)\n" - ); + log(`Cache TTL info: ${cacheInformation.ttl}`); + + // + // If you disable the interpretHeader option you'll see that the TTL will be the default (99999)\n + // // Remove the old cache by brute force await axios.storage.remove(fetchedResponse.id); @@ -61,8 +59,5 @@ async function main() { const refetchedInformation = await axios.storage.get(refetchedResponse.id); - console.log('Third request TTL:'); - console.log(refetchedInformation.ttl); -} - -main(); + log(`Third request TTL: ${refetchedInformation.ttl}`); +})().catch(console.error);