OLD | NEW |
1 library pub.barback; | 1 library pub.barback; |
2 import 'package:barback/barback.dart'; | 2 import 'package:barback/barback.dart'; |
3 import 'package:path/path.dart' as p; | 3 import 'package:path/path.dart' as p; |
4 import 'version.dart'; | 4 import 'package:pub_semver/pub_semver.dart'; |
5 final pubConstraints = { | 5 final pubConstraints = { |
6 "barback": new VersionConstraint.parse(">=0.13.0 <0.15.3"), | 6 "barback": new VersionConstraint.parse(">=0.13.0 <0.15.3"), |
7 "source_span": new VersionConstraint.parse(">=1.0.0 <2.0.0"), | 7 "source_span": new VersionConstraint.parse(">=1.0.0 <2.0.0"), |
8 "stack_trace": new VersionConstraint.parse(">=0.9.1 <2.0.0") | 8 "stack_trace": new VersionConstraint.parse(">=0.9.1 <2.0.0") |
9 }; | 9 }; |
10 Uri idToPackageUri(AssetId id) { | 10 Uri idToPackageUri(AssetId id) { |
11 if (!id.path.startsWith('lib/')) { | 11 if (!id.path.startsWith('lib/')) { |
12 throw new ArgumentError("Asset id $id doesn't identify a library."); | 12 throw new ArgumentError("Asset id $id doesn't identify a library."); |
13 } | 13 } |
14 return new Uri( | 14 return new Uri( |
15 scheme: 'package', | 15 scheme: 'package', |
16 path: p.url.join(id.package, id.path.replaceFirst('lib/', ''))); | 16 path: p.url.join(id.package, id.path.replaceFirst('lib/', ''))); |
17 } | 17 } |
18 AssetId packagesUrlToId(Uri url) { | 18 AssetId packagesUrlToId(Uri url) { |
19 var parts = p.url.split(url.path); | 19 var parts = p.url.split(url.path); |
20 if (parts.isNotEmpty && parts.first == "/") parts = parts.skip(1).toList(); | 20 if (parts.isNotEmpty && parts.first == "/") parts = parts.skip(1).toList(); |
21 if (parts.isEmpty) return null; | 21 if (parts.isEmpty) return null; |
22 var index = parts.indexOf("packages"); | 22 var index = parts.indexOf("packages"); |
23 if (index == -1) return null; | 23 if (index == -1) return null; |
24 if (parts.length <= index + 1) { | 24 if (parts.length <= index + 1) { |
25 throw new FormatException( | 25 throw new FormatException( |
26 'Invalid URL path "${url.path}". Expected package name ' 'after "package
s".'); | 26 'Invalid URL path "${url.path}". Expected package name ' 'after "package
s".'); |
27 } | 27 } |
28 var package = parts[index + 1]; | 28 var package = parts[index + 1]; |
29 var assetPath = p.url.join("lib", p.url.joinAll(parts.skip(index + 2))); | 29 var assetPath = p.url.join("lib", p.url.joinAll(parts.skip(index + 2))); |
30 return new AssetId(package, assetPath); | 30 return new AssetId(package, assetPath); |
31 } | 31 } |
OLD | NEW |