Remove support for legacy arguments (#9) Closes #8 Remove deprecated `packageRoot` argument, nothing should be using this. Change `sdkUri` to be statically a `Uri` for more type safety. We only ever really need the String representation, but by enforcing the type we keep usage more on the rails. The only usage in `package:test_core` is passing a Uri, and other uses can easily wrap with `Uri.parse`. Bump the minimum SDK to `2.4.0`. Not version of `package:test` will support this package with a lower SDK bound, so it is not useful to claim support for earlier SDKs that we can't test on.
diff --git a/.travis.yml b/.travis.yml index e518c82..a16db93 100644 --- a/.travis.yml +++ b/.travis.yml
@@ -5,7 +5,7 @@ dart: - dev - - 2.0.0 + - 2.4.0 dart_task: - test: -p chrome,vm
diff --git a/CHANGELOG.md b/CHANGELOG.md index a3dc43c..9af1b28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -1,4 +1,8 @@ -## 1.1.6-dev +## 2.0.0-dev + +* **Breaking** The `sdkRoot` argument must be an `Uri`. Use `Uri.parse` for use + cases previously passing a `String`. +* **Breaking** The deprecated `packageRoot` argument has been removed. ## 1.1.5
diff --git a/lib/source_map_stack_trace.dart b/lib/source_map_stack_trace.dart index 1b08952..ae6967a 100644 --- a/lib/source_map_stack_trace.dart +++ b/lib/source_map_stack_trace.dart
@@ -16,26 +16,10 @@ /// If [packageResolver] is passed, it's used to reconstruct `package:` URIs for /// stack frames that come from packages. /// -/// [sdkRoot] is the URI (usually a `file:` URI) for the SDK containing dart2js. -/// It can be a [String] or a [Uri]. If it's passed, stack frames from the SDK -/// will have `dart:` URLs. -/// -/// `packageRoot` is deprecated and shouldn't be used in new code. This throws -/// an [ArgumentError] if `packageRoot` and [packageResolver] are both passed. +/// [sdkRoot] is the URI surfaced in the stack traces for SDK libraries. +/// If it's passed, stack frames from the SDK will have `dart:` URLs. StackTrace mapStackTrace(Mapping sourceMap, StackTrace stackTrace, - {bool minified = false, - SyncPackageResolver packageResolver, - sdkRoot, - @Deprecated('Use the packageResolver parameter instead.') packageRoot}) { - if (packageRoot != null) { - if (packageResolver != null) { - throw ArgumentError( - 'packageResolver and packageRoot may not both be passed.'); - } - - packageResolver = SyncPackageResolver.root(packageRoot); - } - + {bool minified = false, SyncPackageResolver packageResolver, Uri sdkRoot}) { if (stackTrace is Chain) { return Chain(stackTrace.traces.map((trace) { return Trace.from(mapStackTrace(sourceMap, trace, @@ -45,10 +29,6 @@ })); } - if (sdkRoot != null && sdkRoot is! String && sdkRoot is! Uri) { - throw ArgumentError('sdkRoot must be a String or a Uri, was "$sdkRoot".'); - } - var sdkLib = sdkRoot == null ? null : '$sdkRoot/lib'; var trace = Trace.from(stackTrace);
diff --git a/pubspec.yaml b/pubspec.yaml index aa69de5..3c1c82d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml
@@ -1,12 +1,12 @@ name: source_map_stack_trace -version: 1.1.6-dev +version: 2.0.0-dev description: A package for applying source maps to stack traces. author: Dart Team <misc@dartlang.org> homepage: https://github.com/dart-lang/source_map_stack_trace environment: - sdk: '>=2.0.0 <3.0.0' + sdk: '>=2.4.0 <3.0.0' dependencies: package_resolver: ^1.0.0 @@ -15,5 +15,8 @@ source_maps: ^0.10.2 dev_dependencies: - test: '>=0.12.0 <2.0.0' + test: ^1.12.0 pedantic: ^1.0.0 + +dependency_overrides: + test_core: ^0.3.0
diff --git a/test/source_map_stack_trace_test.dart b/test/source_map_stack_trace_test.dart index 0bb3081..a7b8deb 100644 --- a/test/source_map_stack_trace_test.dart +++ b/test/source_map_stack_trace_test.dart
@@ -127,25 +127,6 @@ expect(frame.column, equals(4)); }); - test('uses package: URIs for frames within packageRoot', () { - var trace = Trace.parse('foo.dart.js 10 foo'); - var builder = SourceMapBuilder() - ..addSpan( - SourceMapSpan.identifier( - SourceLocation(1, - line: 1, column: 3, sourceUrl: 'packages/foo/foo.dart'), - 'qux'), - SourceSpan(SourceLocation(8, line: 5, column: 0), - SourceLocation(12, line: 9, column: 1), '\n' * 4)); - - var mapping = parseJson(builder.build('foo.dart.js.map')); - var frame = - _mapTrace(mapping, trace, packageRoot: 'packages/').frames.first; - expect(frame.uri, equals(Uri.parse('package:foo/foo.dart'))); - expect(frame.line, equals(2)); - expect(frame.column, equals(4)); - }); - test('uses package: URIs for frames within packageResolver.packageRoot', () { var trace = Trace.parse('foo.dart.js 10 foo'); var builder = SourceMapBuilder() @@ -200,7 +181,8 @@ SourceLocation(12, line: 9, column: 1), '\n' * 4)); var mapping = parseJson(builder.build('foo.dart.js.map')); - var frame = _mapTrace(mapping, trace, sdkRoot: 'sdk/').frames.first; + var frame = + _mapTrace(mapping, trace, sdkRoot: Uri.parse('sdk/')).frames.first; expect(frame.uri, equals(Uri.parse('dart:async/foo.dart'))); expect(frame.line, equals(2)); expect(frame.column, equals(4)); @@ -282,31 +264,17 @@ /// Like [mapStackTrace], but is guaranteed to return a [Trace] so it can be /// inspected. Trace _mapTrace(Mapping sourceMap, StackTrace stackTrace, - {bool minified = false, - SyncPackageResolver packageResolver, - sdkRoot, - packageRoot}) { + {bool minified = false, SyncPackageResolver packageResolver, Uri sdkRoot}) { return Trace.from(mapStackTrace(sourceMap, stackTrace, - minified: minified, - packageResolver: packageResolver, - sdkRoot: sdkRoot, - // ignore: deprecated_member_use_from_same_package - packageRoot: packageRoot)); + minified: minified, packageResolver: packageResolver, sdkRoot: sdkRoot)); } /// Like [mapStackTrace], but is guaranteed to return a [Chain] so it can be /// inspected. Chain _mapChain(Mapping sourceMap, StackTrace stackTrace, - {bool minified = false, - SyncPackageResolver packageResolver, - sdkRoot, - packageRoot}) { + {bool minified = false, SyncPackageResolver packageResolver, Uri sdkRoot}) { return Chain.forTrace(mapStackTrace(sourceMap, stackTrace, - minified: minified, - packageResolver: packageResolver, - sdkRoot: sdkRoot, - // ignore: deprecated_member_use_from_same_package - packageRoot: packageRoot)); + minified: minified, packageResolver: packageResolver, sdkRoot: sdkRoot)); } /// Runs the mapper's prettification logic on [member] and returns the result.