classNameFromUrl static method

String classNameFromUrl(
  1. String url
)

Implementation

static String classNameFromUrl(String url) {
  final uri = Uri.tryParse(url);

  if (uri == null) {
    return "Model";
  }

  final segments =
      uri.pathSegments.where((segment) => segment.isNotEmpty).toList();

  if (segments.isEmpty) {
    return "Model";
  }

  // Find the last meaningful resource.
  //
  // /users
  // /users/1
  // /users/123/posts
  //
  // We want:
  // users
  // users
  // posts

  String resource;

  final last = segments.last;

  if (_isId(last)) {
    if (segments.length < 2) {
      return "Model";
    }

    resource = segments[segments.length - 2];
  } else {
    resource = last;
  }

  resource = _removeQueryOrExtension(resource);

  resource = _singularize(resource);

  return _toPascalCase(resource);
}