mirror of
https://github.com/cloudflare/vinext.git
synced 2026-09-14 19:04:59 +08:00
4f7eec967e
* fix(router): avoid repeated App path decoding * test(router): align encoded middleware pathname * fix(router): match Next encoded path semantics * fix(prerender): accept canonical encoded app params * fix(router): preserve encoded interception params * test(build): tolerate watch output replacement * test(router): cover repeatedly encoded production paths * fix(router): preserve action request route identity * refactor(middleware): remove stale pathname argument * refactor(router): align fallback interception paths * refactor(router): derive request path identity from value * fix(router): preserve encoded route parity * fix(router): preserve raw config path matching * fix(router): preserve raw encoded route identity * fix(router): canonicalize encoded dot segments * fix(router): restore encoded path parity after main merge * fix(app-router): exact-match generated params * fix(app-router): chain generated parent params * fix(app-router): preserve generated param ownership * fix(app-router): preserve per-result param ownership * fix(app-router): preserve params after empty parallel generation * fix(app-router): chain parallel static params by branch
29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import { draftMode } from "next/headers";
|
|
import { NextResponse, type NextRequest } from "next/server";
|
|
|
|
/**
|
|
* Mirrors the upstream `app-middleware` fixture: mutate the *request* headers
|
|
* so downstream handlers (including Pages Router `pages/api/*`) observe the
|
|
* injected header, and enable draft mode on `?draft=true`. Regression coverage
|
|
* for #1520.
|
|
*/
|
|
export async function middleware(request: NextRequest) {
|
|
if (request.nextUrl.pathname === "/%61dmin") {
|
|
return NextResponse.rewrite(new URL("/admin", request.url));
|
|
}
|
|
if (request.nextUrl.pathname.startsWith("/encoded-parity/rewrite/")) {
|
|
const target = request.nextUrl.clone();
|
|
target.pathname = request.nextUrl.pathname.replace(
|
|
"/encoded-parity/rewrite/",
|
|
"/encoded-parity/page/",
|
|
);
|
|
return NextResponse.rewrite(target);
|
|
}
|
|
if (request.nextUrl.searchParams.get("draft")) {
|
|
(await draftMode()).enable();
|
|
}
|
|
const headers = new Headers(request.headers);
|
|
headers.set("x-from-middleware", "hello-from-middleware");
|
|
return NextResponse.next({ request: { headers } });
|
|
}
|