isSvgUrl function

bool isSvgUrl(
  1. String url
)

Whether url names an SVG by itself: a path ending .svg, or a data:image/svg+xml URL.

Many SVGs say nothing in their URL — https://img.shields.io/pub/v/x is one — so an image that fails to decode as a bitmap is tried as an SVG too.

Implementation

bool isSvgUrl(String url) {
  final lower = url.toLowerCase();
  if (lower.startsWith('data:')) {
    return lower.startsWith('data:image/svg+xml');
  }
  var end = lower.length;
  final query = lower.indexOf('?');
  if (query != -1) end = query;
  final fragment = lower.indexOf('#');
  if (fragment != -1 && fragment < end) end = fragment;
  return lower.substring(0, end).endsWith('.svg');
}