Index: pkg/stack_trace/lib/src/utils.dart |
diff --git a/pkg/stack_trace/lib/src/utils.dart b/pkg/stack_trace/lib/src/utils.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..790dec88b6e93e00650d3256b056669589214deb |
--- /dev/null |
+++ b/pkg/stack_trace/lib/src/utils.dart |
@@ -0,0 +1,29 @@ |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+library utils; |
+ |
+import 'dart:io'; |
+import 'dart:uri'; |
+ |
+import 'package:pathos/path.dart' as path; |
+ |
+/// Converts a `file:` [Uri] to a local path string. |
+String fileUriToPath(Uri uri) { |
+ if (uri.scheme != 'file') { |
+ throw new ArgumentError("Uri $uri must have scheme 'file:'."); |
+ } |
+ if (Platform.operatingSystem != 'windows') return uri.path; |
+ return uri.path.replaceFirst("/", "").replaceAll("/", "\\"); |
+} |
+ |
+/// Converts a local path string to a `file:` [Uri]. |
+Uri pathToFileUri(String pathString) { |
+ pathString = path.absolute(pathString); |
+ if (Platform.operatingSystem != 'windows') { |
+ return Uri.parse('file://$pathString'); |
+ } else { |
+ return Uri.parse('file:///${pathString.replaceAll("\\", "/")}'); |
+ } |
+} |