feat: Upgrade template based on projects made with it
Some checks failed
Build, check & Test / run (push) Failing after 42s

Signed-off-by: Florian Bouillon <f.bouillon@aptatio.com>
This commit is contained in:
2023-10-09 11:47:11 +02:00
parent bf06e41238
commit e26b4eb4a5
42 changed files with 934 additions and 136 deletions

View File

@ -1,5 +1,5 @@
import { sequence } from "astro/middleware"
import responseBuilder from './responseBuilder'
import logger from './logger'
export const onRequest = sequence(responseBuilder)
export const onRequest = sequence(logger)

14
src/middleware/logger.ts Normal file
View File

@ -0,0 +1,14 @@
import { defineMiddleware } from "astro/middleware"
import { buildRFC7807 } from '../libs/RFCs/RFC7807'
import ResponseBuilder from '../libs/ResponseBuilder'
// `context` and `next` are automatically typed
export default defineMiddleware(async ({ request }, next) => {
const prefix = `[${new Date().toISOString()}] ${request.headers.get('user-agent')?.slice(0, 32).padEnd(32)} ${request.method.padEnd(7)}`
console.log(`${prefix} ${request.url}`)
// can crash if response crash
const res = await next()
console.log(`${prefix} ${res.status} ${request.url}`)
return res
})

View File

@ -1,21 +0,0 @@
import { defineMiddleware } from "astro/middleware"
import { buildRFC7807 } from '../libs/RFCs/RFC7807'
import ResponseBuilder from '../libs/ResponseBuilder'
// `context` and `next` are automatically typed
export default defineMiddleware(async ({ request, locals }, next) => {
locals.responseBuilder = new ResponseBuilder()
console.log(`[${new Date().toISOString()}] ${request.headers.get('user-agent')?.slice(0, 32).padEnd(32)} ${request.method.padEnd(7)} ${request.url}`)
try {
const res = await next()
console.log(`[${new Date().toISOString()}] ${request.headers.get('user-agent')?.slice(0, 32).padEnd(32)} ${request.method.padEnd(7)} ${res.status} ${request.url}`)
return res
} catch (e) {
console.error(e)
return buildRFC7807({
type: '/docs/errors/global-error',
status: 500
})
}
})