Files
reflector/www/proxy.ts
Sergey Mankovsky f6cc03286b fix: upgrade to nextjs 16 (#888)
* Upgrade to nextjs 16

* Update sentry config

* Force dynamic for health route

* Upgrade eslint config

* Upgrade jest

* Move types to dev dependencies

* Remove pages from tailwind config

* Replace img with next image
2026-02-27 17:18:03 +01:00

47 lines
1.2 KiB
TypeScript

import { withAuth } from "next-auth/middleware";
import { featureEnabled } from "./app/lib/features";
import { NextResponse } from "next/server";
import { PROTECTED_PAGES } from "./app/lib/auth";
export const config = {
matcher: [
"/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)",
// must be a copy of LOGIN_REQUIRED_PAGES
// cannot use anything dynamic (...LOGIN_REQUIRED_PAGES, or .concat(LOGIN_REQUIRED_PAGES))
// as per https://nextjs.org/docs/messages/invalid-page-config
"/",
"/transcripts(.*)",
"/browse(.*)",
"/rooms(.*)",
],
};
export default withAuth(
async function middleware(request) {
const pathname = request.nextUrl.pathname;
// feature-flags protected paths
if (
(!featureEnabled("browse") && pathname.startsWith("/browse")) ||
(!featureEnabled("rooms") && pathname.startsWith("/rooms"))
) {
return NextResponse.redirect(request.nextUrl.origin);
}
},
{
callbacks: {
async authorized({ req, token }) {
if (
featureEnabled("requireLogin") &&
PROTECTED_PAGES.test(req.nextUrl.pathname)
) {
return !!token;
}
return true;
},
},
},
);