Route constructor
Route({
- required String path,
- required Component builder(
- ParamsContext params
- bool catchAll = false,
Implementation
Route({
required this.path,
required this.builder,
this.catchAll = false, // ← NUEVO
}) {
final names = <String>[];
var pattern = path.replaceAllMapped(RegExp(r':(\w+)'), (m) {
names.add(m.group(1)!);
return '([^/]+)';
});
_paramNames = names;
// ✅ Si es catchAll, matchea el prefijo y todo lo que sigue
if (catchAll) {
_regex = RegExp(
'^$pattern(/.*)?',
); // Matchea /docs, /docs/, /docs/anything
} else {
_regex = RegExp('^$pattern\$');
}
}