Compare commits

...

2 Commits

Author SHA1 Message Date
b6c7c76900 document the middleware 2025-03-16 16:42:44 -04:00
75e8d2b7b2 middleware 2025-03-16 16:33:16 -04:00
3 changed files with 20 additions and 9 deletions

@ -26,6 +26,12 @@ Prerequisite: golang installed
Prerequisite: bun installed
The environment variable `API_HOST` will need to be set for the middleware.
Example `.env` in web's root:
```
API_HOST="http://localhost:8082/v1/"
```
1. `cd web`
2. `bun install`

@ -3,15 +3,7 @@ import type { NextConfig } from "next";
const nextConfig: NextConfig = {
distDir: "build",
output: "standalone",
rewrites: async () => {
return [
{
source: "/api/:path*",
destination: "http://localhost:8082/v1/:path*"
}
]
},
images: {
images: {
remotePatterns: [
{
protocol: 'https',

13
web/src/app/middleware.ts Normal file

@ -0,0 +1,13 @@
import { NextRequest, NextResponse } from "next/server"
export const config = {
matcher: ["/api/:path*"],
}
export function middleware(request: NextRequest) {
if (!process.env.API_HOST) {
throw new Error("env variable \"API_HOST\" is not set")
}
const url = new URL(process.env.API_HOST + request.nextUrl.pathname + request.nextUrl.search)
return NextResponse.rewrite(url, { request })
}