RFC: Include custom url matcher in filesystem routing
DevWedeloper opened this issue · 0 comments
DevWedeloper commented
Which scope/s are relevant/related to the feature request?
router
Information
This RFC proposes adding support for Custom URL Matchers within the existing filesystem-based routing of Analog. This feature would allow developers to define custom logic for URL pattern matching directly within .page.ts
files, enabling more flexible and complex routing patterns.
Proposed Implementation:
- Naming Pattern for Custom Matchers:
- Introduce a naming convention or symbol (e.g.,
$
) in.page.ts
filenames to signify that the file contains a custom URL matcher. - For example, a file named
[$example].page.ts
would indicate that this route uses a custom matcher instead of relying on standard static or dynamic routing.
- Matcher Defined Inside
.page.ts
:
-
Developers would define a custom matcher function, similar to Angular’s UrlMatcher. This function would return a UrlMatchResult if the URL matches the defined logic.
Example:
export const urlMatcher = (segments: UrlSegment[], group: UrlSegmentGroup, route: Route): UrlMatchResult | null => { ... };
Describe any alternatives/workarounds you're currently using
I'm using the provideRouter along with provideFileRouter
I would be willing to submit a PR to fix this issue
- Yes
- No