isSvgUrl function
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');
}