mount method

void mount(
  1. String prefix,
  2. Function handler
)

Mount a handler below a prefix.

Implementation

void mount(String prefix, Function handler) {
  if (!prefix.startsWith('/')) {
    throw ArgumentError.value(prefix, 'prefix', 'must start with a slash');
  }

  if (prefix.endsWith('/')) {
    _all(
      '$prefix<$_kMountedPathParamRest|[^]*>',
      (RequestContext context, List<String> params) {
        return _invokeMountedHandler(
          context,
          handler,
          // Remove path param from extracted route params
          [...params]..removeLast(),
        );
      },
      mounted: true,
    );
  } else {
    _all(
      prefix,
      (RequestContext context, List<String> params) {
        return _invokeMountedHandler(context, handler, params);
      },
      mounted: true,
    );
    _all(
      '$prefix/<$_kMountedPathParamRest|[^]*>',
      (RequestContext context, List<String> params) {
        return _invokeMountedHandler(
          context,
          handler,
          // Remove path param from extracted route params
          [...params]..removeLast(),
        );
      },
      mounted: true,
    );
  }
}