import { NextFetchEvent, NextRequest, NextResponse } from 'next/server';

// eslint-disable-next-line consistent-return
export function middleware(req: NextRequest, ev: NextFetchEvent) {
  const isCorrectPassword = req.cookies.get('password') === process.env.PASSWORD;
  const url = req.nextUrl.clone();
  const skipURL =
    url.pathname &&
    (url.pathname.includes('login') ||
      url.pathname === '/api/configs/tryPassword' ||
      (url.pathname.includes('/_next/') && !url.pathname.includes('/pages/')) ||
      url.pathname === '/favicon.ico' ||
      url.pathname === '/404' ||
      url.pathname === '/migrate' ||
      url.pathname.includes('pages/_app'));
  if (!skipURL && !isCorrectPassword && process.env.PASSWORD) {
    url.pathname = '/login';
    return NextResponse.rewrite(url);
  }
}
