import { buildPath } from '../routing/RouteConfig'; /** * RoutePathBuilder builds paths from route IDs with optional parameters and locale * * Usage: * ```typescript * const builder = new RoutePathBuilder(); * * // Simple route * builder.build('auth.login'); // → '/auth/login' * * // With parameters * builder.build('league.detail', { id: '123' }); // → '/leagues/123' * * // With locale * builder.build('auth.login', {}, { locale: 'de' }); // → '/de/auth/login' * * // With parameters and locale * builder.build('league.detail', { id: '123' }, { locale: 'de' }); // → '/de/leagues/123' * ``` */ export class RoutePathBuilder { /** * Build a path from route ID with optional parameters and locale * @param routeId - Route ID in format 'category.routeName' * @param params - Optional parameters for parameterized routes * @param options - Optional options including locale * @returns Complete path with optional locale prefix */ build( routeId: string, params?: Record, options?: { locale?: string | null } ): string { const path = buildPath(routeId, params); // Add locale prefix if provided if (options?.locale) { return `/${options.locale}${path}`; } return path; } }