commerce/middleware.ts
Chloe 4673120ddc
support url rewrite for migration
Signed-off-by: Chloe <pinkcloudvnn@gmail.com>
2024-07-02 18:03:57 +07:00

38 lines
1.2 KiB
TypeScript

import { getOrigin, isLoggedIn } from 'lib/shopify/auth';
import { NextRequest, NextResponse } from 'next/server';
const URL_PREFIXES = ['/transmissions', '/engines', '/transfer-cases', '/remanufactured-engines'];
// This function can be marked `async` if using `await` inside
export async function middleware(request: NextRequest) {
if (request.nextUrl.pathname.startsWith('/account')) {
console.log('Running Account middleware');
const origin = getOrigin(request);
return await isLoggedIn(request, origin);
}
if (URL_PREFIXES.some((url) => request.nextUrl.pathname.startsWith(url))) {
// /transmissions/bmw/x5 would turn into /transmissions-bmw-x5
const requestPathname = request.nextUrl.pathname.split('/').filter(Boolean).join('-');
const searchString = request.nextUrl.search;
return NextResponse.rewrite(
new URL(
searchString ? `/search/${requestPathname}${searchString}` : `/search/${requestPathname}`,
request.url
)
);
}
}
export const config = {
matcher: [
'/account/:path*',
'/transmissions/:path*',
'/engines/:path*',
'/transfer-cases/:path*',
'/remanufactured-engines/:path*'
]
};