mirror of
https://github.com/supabase/supabase.git
synced 2026-05-31 09:52:58 +08:00
37 lines
897 B
TypeScript
37 lines
897 B
TypeScript
import { NextResponse } from 'next/server'
|
|
import type { NextRequest } from 'next/server'
|
|
import isbot from 'isbot'
|
|
|
|
export function middleware(request: NextRequest) {
|
|
const specs = ['javascript', 'dart']
|
|
|
|
let version = ''
|
|
if (request.url.includes('/v1/')) {
|
|
version = 'v1'
|
|
}
|
|
if (request.url.includes('/v0/')) {
|
|
version = 'v0'
|
|
}
|
|
|
|
if (isbot(request.headers.get('user-agent'))) {
|
|
for (const lib of specs) {
|
|
if (request.url.includes(`reference/${lib}`)) {
|
|
const requestSlug = request.url.split('/').pop()
|
|
|
|
return NextResponse.rewrite(
|
|
new URL(
|
|
`/docs/reference/${lib}/${version ? version + '/' : ''}crawlers/${requestSlug}`,
|
|
request.url
|
|
).toString()
|
|
)
|
|
}
|
|
}
|
|
} else {
|
|
return NextResponse.next()
|
|
}
|
|
}
|
|
|
|
export const config = {
|
|
matcher: '/((?!api|_next|static|public|favicon.ico).*)',
|
|
}
|