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