| 123456789101112131415161718192021222324 |
- import type { ParsedUrlQuery } from 'querystring'
- /**
- * Sanitizes a route for project navigation (e.g. when building href for project switch).
- * Truncates to avoid carrying project-specific dynamic path segments.
- * Uses route segments (not query params) to determine truncation, so non-path query keys
- * (e.g. sort, filter) do not incorrectly trigger or affect truncation.
- */
- export function sanitizeRoute(_route: string, _routerQueries: ParsedUrlQuery): string {
- const routeSegments = _route.split('/')
- const hasStorageBucketSegment = routeSegments.includes('[bucketId]')
- const hasSecurityAdvisorSegment = routeSegments.includes('[preset]')
- const hasOtherDynamicSegment = routeSegments.some(
- (s) => s.startsWith('[') && s.endsWith(']') && s !== '[ref]'
- )
- const needsTruncation =
- hasStorageBucketSegment || hasSecurityAdvisorSegment || hasOtherDynamicSegment
- if (!needsTruncation) return _route
- const sliceLength = hasStorageBucketSegment || hasSecurityAdvisorSegment ? 5 : 4
- return routeSegments.slice(0, sliceLength).join('/')
- }
|