Route constructor

Route({
  1. required String path,
  2. required Component builder(
    1. ParamsContext params
    ),
  3. 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\$');
  }
}