2018-07-24 10:39:35 +00:00
|
|
|
const micro = require('micro')
|
2018-07-22 13:00:51 +00:00
|
|
|
const { router, get } = require('micro-fork')
|
2018-09-04 07:00:54 +00:00
|
|
|
const publicHandlers = require('./libs/public-handlers.js')
|
2018-07-03 15:22:38 +00:00
|
|
|
const serveIndex = require('./libs/serve-index.js')
|
2018-07-12 06:47:40 +00:00
|
|
|
const serve404 = require('./libs/serve-404.js')
|
2018-07-20 09:43:07 +00:00
|
|
|
const serveBadge = require('./libs/serve-badge.js')
|
2018-08-30 03:05:27 +00:00
|
|
|
const serveMetadata = require('./libs/serve-metadata.js')
|
2018-08-05 00:40:10 +00:00
|
|
|
const liveHandlers = require('./libs/live-handlers.js')
|
|
|
|
const serveApi = require('./libs/serve-api.js')
|
2018-08-16 07:50:09 +00:00
|
|
|
const raven = require('./libs/raven.js')
|
2018-07-22 13:00:51 +00:00
|
|
|
|
2018-08-17 06:50:45 +00:00
|
|
|
const indexHandler = (req, res) => {
|
2018-08-05 12:22:11 +00:00
|
|
|
if (req.headers.host === 'badgen.now.sh') {
|
|
|
|
res.setHeader('Location', 'https://badgen.net')
|
|
|
|
micro.send(res, 301)
|
|
|
|
} else {
|
|
|
|
serveIndex(req, res)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-08-10 05:02:23 +00:00
|
|
|
const serveStaticBadge = (req, res) => {
|
|
|
|
serveBadge(req, res, { maxAge: '31536000' })
|
|
|
|
}
|
|
|
|
|
2018-08-05 00:40:10 +00:00
|
|
|
const main = router()(
|
2018-07-24 10:05:25 +00:00
|
|
|
get('/*', serve404),
|
2018-08-17 06:50:45 +00:00
|
|
|
get('/', indexHandler),
|
2018-08-30 03:05:27 +00:00
|
|
|
get('/metadata.json', serveMetadata),
|
2018-08-10 05:02:23 +00:00
|
|
|
get('/badge/:subject/:status', serveStaticBadge),
|
|
|
|
get('/badge/:subject/:status/:color', serveStaticBadge),
|
2018-09-04 07:00:54 +00:00
|
|
|
...liveHandlers,
|
|
|
|
...publicHandlers
|
2018-07-22 13:00:51 +00:00
|
|
|
)
|
2018-07-24 10:39:35 +00:00
|
|
|
|
2018-08-10 13:53:45 +00:00
|
|
|
module.exports = (req, res) => {
|
2018-08-05 00:40:10 +00:00
|
|
|
switch (req.headers.host) {
|
|
|
|
case 'api.badgen.net':
|
|
|
|
case '127.0.0.1:3000':
|
|
|
|
return serveApi(req, res)
|
|
|
|
default:
|
|
|
|
return main(req, res)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-08-16 11:56:23 +00:00
|
|
|
const autoRun = () => {
|
2018-08-16 07:50:09 +00:00
|
|
|
if (require.main === module) {
|
|
|
|
micro(module.exports).listen(3000)
|
|
|
|
}
|
2018-08-16 11:56:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
raven ? raven.context(autoRun) : autoRun()
|