kopia lustrzana https://github.com/badgen/badgen.net
fix: stronger live-handler #102
rodzic
bd080cef9d
commit
3ae4adb34a
|
@ -5,6 +5,17 @@ const serveBadge = require('./serve-badge.js')
|
|||
const liveFetcher = require('./live-fetcher.js')
|
||||
|
||||
const { API_HOST } = process.env
|
||||
const apiFetcher = async url => {
|
||||
return axios.get(API_HOST + url, {
|
||||
validateStatus: status => status >= 200 && status < 300
|
||||
}).then(
|
||||
res => res.data,
|
||||
err => {
|
||||
console.error('API_ERR', url, err.message)
|
||||
return { ...err.response.data, statusCode: err.response.status }
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
module.exports = Object.entries(liveFns).map(([name, fn]) => {
|
||||
return get(`/${name}/*`, async (req, res) => {
|
||||
|
@ -12,15 +23,18 @@ module.exports = Object.entries(liveFns).map(([name, fn]) => {
|
|||
subject = name,
|
||||
status = 'unknown',
|
||||
color = 'grey',
|
||||
failed = false
|
||||
} = await (API_HOST
|
||||
? axios(API_HOST + req.url).then(res => res.data)
|
||||
: liveFetcher(name, fn, req.params['*'])
|
||||
failed = false,
|
||||
statusCode = 200
|
||||
} = await (
|
||||
API_HOST
|
||||
? apiFetcher(req.url)
|
||||
: liveFetcher(name, fn, req.params['*'])
|
||||
)
|
||||
|
||||
const style = req.headers.host === 'flat.badgen.net' ? 'flat' : undefined
|
||||
req.params = { subject, status, color, style }
|
||||
serveBadge(req, res, {
|
||||
code: statusCode,
|
||||
maxAge: failed ? '0' : (Math.random() * 60 + 60).toFixed()
|
||||
})
|
||||
})
|
||||
|
|
Ładowanie…
Reference in New Issue