33a6dca747
This masks flight parameters from middleware so it doesn't interfere with RSC or routing. ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) Co-authored-by: Tim Neutkens <6324199+timneutkens@users.noreply.github.com>
26 lines
870 B
TypeScript
26 lines
870 B
TypeScript
import React from 'react'
|
|
import { BLOCKED_PAGES } from '../shared/lib/constants'
|
|
|
|
export function isBlockedPage(pathname: string): boolean {
|
|
return BLOCKED_PAGES.includes(pathname)
|
|
}
|
|
|
|
export function cleanAmpPath(pathname: string): string {
|
|
if (pathname.match(/\?amp=(y|yes|true|1)/)) {
|
|
pathname = pathname.replace(/\?amp=(y|yes|true|1)&?/, '?')
|
|
}
|
|
if (pathname.match(/&=(y|yes|true|1)/)) {
|
|
pathname = pathname.replace(/&=(y|yes|true|1)/, '')
|
|
}
|
|
pathname = pathname.replace(/\?$/, '')
|
|
return pathname
|
|
}
|
|
|
|
export function isTargetLikeServerless(target: string) {
|
|
const isServerless = target === 'serverless'
|
|
const isServerlessTrace = target === 'experimental-serverless-trace'
|
|
return isServerless || isServerlessTrace
|
|
}
|
|
|
|
// When react version is >= 18 opt-in using reactRoot
|
|
export const shouldUseReactRoot = parseInt(React.version) >= 18
|