parseJson function
Parses a source map.
mapUrl
, which may be either a String or a Uri, indicates the URL of
the source map file itself. If it's passed, any URLs in the source
map will be interpreted as relative to this URL when generating spans.
Implementation
Mapping parseJson(Map map,
{Map<String, Map>? otherMaps, /*String|Uri*/ Object? mapUrl}) {
if (map['version'] != 3) {
throw ArgumentError('unexpected source map version: ${map["version"]}. '
'Only version 3 is supported.');
}
if (map.containsKey('sections')) {
if (map.containsKey('mappings') ||
map.containsKey('sources') ||
map.containsKey('names')) {
throw const FormatException('map containing "sections" '
'cannot contain "mappings", "sources", or "names".');
}
return MultiSectionMapping.fromJson(map['sections'] as List, otherMaps,
mapUrl: mapUrl);
}
return SingleMapping.fromJson(map.cast<String, dynamic>(), mapUrl: mapUrl);
}