polen
Version:
A framework for delightful GraphQL developer portals
26 lines (23 loc) • 840 B
text/typescript
import type { Hono } from '#dep/hono/index'
import { AppleTouchIcon } from '#lib/apple-touch-icon/index'
import { Favicon } from '#lib/favicon/index'
import { Http } from '@wollybeard/kit'
/**
* Temporary middleware to block unsupported asset requests
*
* TODO: Polen should eventually support favicon and apple-touch-icon generation
* For now, we return 404 immediately to prevent these requests from reaching
* React Router and causing unnecessary processing or errors.
*/
export const UnsupportedAssetsMiddleware = (): Hono.MiddlewareHandler => {
return async (ctx, next) => {
// Block these asset requests until Polen supports them
if (
Favicon.fileNamePattern.test(ctx.req.path)
|| AppleTouchIcon.fileNamePattern.test(ctx.req.path)
) {
return Http.Response.notFound
}
await next()
}
}