group static method

void group(
  1. Function callback, {
  2. String? prefix = '',
  3. List<Middleware> middleware = const [],
  4. String? domain,
})

Implementation

static void group(
  Function callback, {
  String? prefix = '',
  List<Middleware> middleware = const [],
  String? domain,
}) {
  final router = Router();

  final previousDomain = router._groupDomain;
  final previousPrefix = router._groupPrefix;
  final previousMiddleware = List<Middleware>.from(router._groupMiddleware);

  router._groupDomain = domain ?? previousDomain;

  if (router._groupPrefix != null) {
    if (prefix != null) {
      if (!prefix.startsWith('/')) {
        prefix = '/$prefix';
      }
      router._groupPrefix = _joinPrefixes(router._groupPrefix!, prefix);
    }
  } else {
    if (prefix != null) {
      if (!prefix.startsWith('/')) {
        prefix = '/$prefix';
      }
    }
    router._groupPrefix = prefix;
  }

  if (middleware.isNotEmpty) {
    router._groupMiddleware.addAll(middleware);
  }
  callback();

  router._groupDomain = previousDomain;
  router._groupPrefix = previousPrefix;

  router._groupMiddleware
    ..clear()
    ..addAll(previousMiddleware);
}