diff --git a/libs/lru-cache-live.js b/libs/lru-cache-live.js new file mode 100644 index 0000000..eccd7f9 --- /dev/null +++ b/libs/lru-cache-live.js @@ -0,0 +1,27 @@ +const LRU = require('lru-cache') + +const cache = LRU({ + max: 5000, + maxAge: 3e4, + stale: true +}) + +function listCache (req, res) { + res.writeHead(200) + res.end(`Total ${cache.length}\n${cache.keys().join('\n')}`) +} + +function clearCache (req, res) { + const count = cache.length + const keys = cache.keys().join('\n') + cache.reset() + + res.writeHead(200) + res.end(`Cleaned ${count}\n${keys}`) +} + +module.exports = { + cache, + listCache, + clearCache +} diff --git a/libs/lru-cache.js b/libs/lru-cache-static.js similarity index 89% rename from libs/lru-cache.js rename to libs/lru-cache-static.js index 088e0d2..3aced58 100644 --- a/libs/lru-cache.js +++ b/libs/lru-cache-static.js @@ -2,7 +2,12 @@ const LRU = require('lru-cache') const cache = new LRU({ max: 1000 }) -function cleanCache (req, res) { +function listCache (req, res) { + res.writeHead(200) + res.end(`Total ${cache.length}\n${cache.keys().join('\n')}`) +} + +function clearCache (req, res) { const count = cache.length const keys = cache.keys().join('\n') cache.reset() @@ -11,13 +16,8 @@ function cleanCache (req, res) { res.end(`Cleaned ${count}\n${keys}`) } -function listCache (req, res) { - res.writeHead(200) - res.end(`Total ${cache.length}\n${cache.keys().join('\n')}`) -} - module.exports = { cache, listCache, - cleanCache + clearCache } diff --git a/libs/serve-badge.js b/libs/serve-badge.js index 65be650..a714ae8 100644 --- a/libs/serve-badge.js +++ b/libs/serve-badge.js @@ -1,5 +1,5 @@ const badgen = require('badgen') -const { cache } = require('./lru-cache.js') +const { cache } = require('./lru-cache-static.js') function serveBadge (req, res, params) { const result = cache.get(req.url) || badgen(params) diff --git a/libs/setup-live-badge.js b/libs/setup-live-badge.js index 3fa4291..91e6b64 100644 --- a/libs/setup-live-badge.js +++ b/libs/setup-live-badge.js @@ -1,11 +1,5 @@ -const LRU = require('lru-cache') const liveFns = require('./live-fns/index.js') - -const cache = LRU({ - max: 5000, - maxAge: 3e4, - stale: true -}) +const { cache, listCache, clearCache } = require('./lru-cache-live.js') module.exports = function (router) { Object.entries(liveFns).forEach(([key, fn]) => { @@ -23,19 +17,8 @@ module.exports = function (router) { }) }) - router.get('/list-cache-live', (req, res) => { - res.writeHead(200) - res.end(`Total ${cache.length}\n${cache.keys().join('\n')}`) - }) - - router.get('/clear-cache-live', (req, res) => { - const count = cache.length - const keys = cache.keys().join('\n') - cache.reset() - - res.writeHead(200) - res.end(`Cleaned ${count}\n${keys}`) - }) + router.get('/list-cache-live', listCache) + router.get('/clear-cache-live', clearCache) } async function fetchLiveParams (key, paramsPath, fn) { diff --git a/libs/setup-static-badge.js b/libs/setup-static-badge.js new file mode 100644 index 0000000..fd4c869 --- /dev/null +++ b/libs/setup-static-badge.js @@ -0,0 +1,12 @@ +const { serveBadge, serveListBadge } = require('./serve-badge.js') +const { listCache, clearCache } = require('./lru-cache-static.js') + +module.exports = function (router) { + router.get('/badge/:subject/:status', serveBadge) + router.get('/badge/:subject/:status/:color', serveBadge) + router.get('/list/:subject/:status', serveListBadge) + router.get('/list/:subject/:status/:color', serveListBadge) + + router.get('/list-cache-static', listCache) + router.get('/clear-cache-static', clearCache) +} diff --git a/service.js b/service.js index 0cc18cd..b970950 100644 --- a/service.js +++ b/service.js @@ -2,19 +2,11 @@ const http = require('http') const cors = require('@amio/micro-cors')() const router = require('find-my-way')() const serveIndex = require('./libs/serve-index.js') -const { serveBadge, serveListBadge } = require('./libs/serve-badge.js') -const { listCache, cleanCache } = require('./libs/lru-cache.js') const setupLiveBadge = require('./libs/setup-live-badge.js') - -router.get('/badge/:subject/:status', serveBadge) -router.get('/badge/:subject/:status/:color', serveBadge) -router.get('/list/:subject/:status', serveListBadge) -router.get('/list/:subject/:status/:color', serveListBadge) +const setupStaticBadge = require('./libs/setup-static-badge.js') setupLiveBadge(router) - -router.get('/clean-cache', cleanCache) -router.get('/list-cache', listCache) +setupStaticBadge(router) router.get('/', serveIndex)