Skip to content

Commit ebdb2c0

Browse files
authored
drop package_resolver dependency and remove packageRoot support (flutter#11)
Closes flutter#10
1 parent 668233a commit ebdb2c0

File tree

5 files changed

+48
-62
lines changed

5 files changed

+48
-62
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ sudo: true
55

66
dart:
77
- dev
8-
- 2.4.0
8+
- 2.7.0
99

1010
dart_task:
1111
- test: -p chrome,vm

CHANGELOG.md

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1-
## 2.0.0-dev
1+
## 2.0.0
22

3-
* **Breaking** The `sdkRoot` argument must be an `Uri`. Use `Uri.parse` for use
3+
### Breaking Changes
4+
5+
* Removed dependency on `package_resolver` and changed the apis to accept a
6+
`Map<String, Uri>` which maps package names to the base uri to resolve the
7+
`package:` uris for those packages.
8+
* The `sdkRoot` argument must be an `Uri`. Use `Uri.parse` for use
49
cases previously passing a `String`.
5-
* **Breaking** The deprecated `packageRoot` argument has been removed.
10+
* The deprecated `packageRoot` argument has been removed.
611

712
## 1.1.5
813

lib/source_map_stack_trace.dart

+12-21
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:package_resolver/package_resolver.dart';
65
import 'package:path/path.dart' as p;
76
import 'package:source_maps/source_maps.dart';
87
import 'package:stack_trace/stack_trace.dart';
@@ -13,19 +12,18 @@ import 'package:stack_trace/stack_trace.dart';
1312
/// [minified] indicates whether or not the dart2js code was minified. If it
1413
/// hasn't, this tries to clean up the stack frame member names.
1514
///
16-
/// If [packageResolver] is passed, it's used to reconstruct `package:` URIs for
17-
/// stack frames that come from packages.
15+
/// The [packageMap] maps package names to the base uri used to resolve the
16+
/// `package:` uris for those packages. It is used to it's used to reconstruct
17+
/// `package:` URIs for stack frames that come from packages.
1818
///
1919
/// [sdkRoot] is the URI surfaced in the stack traces for SDK libraries.
2020
/// If it's passed, stack frames from the SDK will have `dart:` URLs.
2121
StackTrace mapStackTrace(Mapping sourceMap, StackTrace stackTrace,
22-
{bool minified = false, SyncPackageResolver packageResolver, Uri sdkRoot}) {
22+
{bool minified = false, Map<String, Uri> packageMap, Uri sdkRoot}) {
2323
if (stackTrace is Chain) {
2424
return Chain(stackTrace.traces.map((trace) {
2525
return Trace.from(mapStackTrace(sourceMap, trace,
26-
minified: minified,
27-
packageResolver: packageResolver,
28-
sdkRoot: sdkRoot));
26+
minified: minified, packageMap: packageMap, sdkRoot: sdkRoot));
2927
}));
3028
}
3129

@@ -52,21 +50,14 @@ StackTrace mapStackTrace(Mapping sourceMap, StackTrace stackTrace,
5250
var sourceUrl = span.sourceUrl.toString();
5351
if (sdkRoot != null && p.url.isWithin(sdkLib, sourceUrl)) {
5452
sourceUrl = 'dart:' + p.url.relative(sourceUrl, from: sdkLib);
55-
} else if (packageResolver != null) {
56-
if (packageResolver.packageRoot != null &&
57-
p.url.isWithin(packageResolver.packageRoot.toString(), sourceUrl)) {
58-
sourceUrl = 'package:' +
59-
p.url.relative(sourceUrl,
60-
from: packageResolver.packageRoot.toString());
61-
} else if (packageResolver.packageConfigMap != null) {
62-
for (var package in packageResolver.packageConfigMap.keys) {
63-
var packageUrl = packageResolver.packageConfigMap[package].toString();
64-
if (!p.url.isWithin(packageUrl, sourceUrl)) continue;
53+
} else if (packageMap != null) {
54+
for (var package in packageMap.keys) {
55+
var packageUrl = packageMap[package].toString();
56+
if (!p.url.isWithin(packageUrl, sourceUrl)) continue;
6557

66-
sourceUrl =
67-
'package:$package/' + p.url.relative(sourceUrl, from: packageUrl);
68-
break;
69-
}
58+
sourceUrl =
59+
'package:$package/' + p.url.relative(sourceUrl, from: packageUrl);
60+
break;
7061
}
7162
}
7263

pubspec.yaml

+16-6
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,32 @@
11
name: source_map_stack_trace
2-
version: 2.0.0-dev
3-
2+
version: 2.0.0
43
description: A package for applying source maps to stack traces.
5-
author: Dart Team <[email protected]>
64
homepage: https://github.com/dart-lang/source_map_stack_trace
75

86
environment:
9-
sdk: '>=2.4.0 <3.0.0'
7+
sdk: '>=2.7.0 <3.0.0'
108

119
dependencies:
12-
package_resolver: ^1.0.0
1310
path: ^1.0.0
1411
stack_trace: ^1.0.0
1512
source_maps: ^0.10.2
1613

1714
dev_dependencies:
15+
source_span: ^1.6.0
1816
test: ^1.12.0
1917
pedantic: ^1.0.0
2018

2119
dependency_overrides:
22-
test_core: ^0.3.0
20+
# Required to get a valid pub solve until package:test updates
21+
test_core:
22+
git:
23+
url: https://github.com/dart-lang/test.git
24+
ref: drop-package-resolver
25+
path: pkgs/test_core
26+
test:
27+
git:
28+
url: https://github.com/dart-lang/test.git
29+
ref: drop-package-resolver
30+
path: pkgs/test
31+
package_config: ^1.9.1
32+

test/source_map_stack_trace_test.dart

+11-31
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:package_resolver/package_resolver.dart';
65
import 'package:path/path.dart' as p;
76
import 'package:source_maps/source_maps.dart';
87
import 'package:source_span/source_span.dart';
@@ -20,6 +19,11 @@ final _simpleMapping = parseJson((SourceMapBuilder()
2019
SourceLocation(18, line: 15, column: 0), '\n' * 10)))
2120
.build('foo.dart.js.map'));
2221

22+
final _packageMap = {
23+
'bar': Uri.parse('packages/bar'),
24+
'foo': Uri.parse('packages/foo'),
25+
};
26+
2327
void main() {
2428
test('maps a JS line and column to a Dart line and span', () {
2529
var trace = Trace.parse('foo.dart.js 10:11 foo');
@@ -89,9 +93,7 @@ bar.dart.js 10:11 foo
8993

9094
var bundle = [sourceMapJson1, sourceMapJson2];
9195
var mapping = parseJsonExtended(bundle);
92-
var frames = _mapTrace(mapping, trace,
93-
packageResolver: SyncPackageResolver.root('packages/'))
94-
.frames;
96+
var frames = _mapTrace(mapping, trace, packageMap: _packageMap).frames;
9597

9698
expect(frames.length, equals(3));
9799

@@ -127,26 +129,6 @@ bar.dart.js 10:11 foo
127129
expect(frame.column, equals(4));
128130
});
129131

130-
test('uses package: URIs for frames within packageResolver.packageRoot', () {
131-
var trace = Trace.parse('foo.dart.js 10 foo');
132-
var builder = SourceMapBuilder()
133-
..addSpan(
134-
SourceMapSpan.identifier(
135-
SourceLocation(1,
136-
line: 1, column: 3, sourceUrl: 'packages/foo/foo.dart'),
137-
'qux'),
138-
SourceSpan(SourceLocation(8, line: 5, column: 0),
139-
SourceLocation(12, line: 9, column: 1), '\n' * 4));
140-
141-
var mapping = parseJson(builder.build('foo.dart.js.map'));
142-
var mappedTrace = _mapTrace(mapping, trace,
143-
packageResolver: SyncPackageResolver.root('packages/'));
144-
var frame = mappedTrace.frames.first;
145-
expect(frame.uri, equals(Uri.parse('package:foo/foo.dart')));
146-
expect(frame.line, equals(2));
147-
expect(frame.column, equals(4));
148-
});
149-
150132
test('uses package: URIs for frames within a packageResolver.packageMap URL',
151133
() {
152134
var trace = Trace.parse('foo.dart.js 10 foo');
@@ -160,9 +142,7 @@ bar.dart.js 10:11 foo
160142
SourceLocation(12, line: 9, column: 1), '\n' * 4));
161143

162144
var mapping = parseJson(builder.build('foo.dart.js.map'));
163-
var mappedTrace = _mapTrace(mapping, trace,
164-
packageResolver:
165-
SyncPackageResolver.config({'foo': Uri.parse('packages/foo')}));
145+
var mappedTrace = _mapTrace(mapping, trace, packageMap: _packageMap);
166146
var frame = mappedTrace.frames.first;
167147
expect(frame.uri, equals(Uri.parse('package:foo/foo.dart')));
168148
expect(frame.line, equals(2));
@@ -264,17 +244,17 @@ bar.dart.js 10:11 foo
264244
/// Like [mapStackTrace], but is guaranteed to return a [Trace] so it can be
265245
/// inspected.
266246
Trace _mapTrace(Mapping sourceMap, StackTrace stackTrace,
267-
{bool minified = false, SyncPackageResolver packageResolver, Uri sdkRoot}) {
247+
{bool minified = false, Map<String, Uri> packageMap, Uri sdkRoot}) {
268248
return Trace.from(mapStackTrace(sourceMap, stackTrace,
269-
minified: minified, packageResolver: packageResolver, sdkRoot: sdkRoot));
249+
minified: minified, packageMap: packageMap, sdkRoot: sdkRoot));
270250
}
271251

272252
/// Like [mapStackTrace], but is guaranteed to return a [Chain] so it can be
273253
/// inspected.
274254
Chain _mapChain(Mapping sourceMap, StackTrace stackTrace,
275-
{bool minified = false, SyncPackageResolver packageResolver, Uri sdkRoot}) {
255+
{bool minified = false, Map<String, Uri> packageMap, Uri sdkRoot}) {
276256
return Chain.forTrace(mapStackTrace(sourceMap, stackTrace,
277-
minified: minified, packageResolver: packageResolver, sdkRoot: sdkRoot));
257+
minified: minified, packageMap: packageMap, sdkRoot: sdkRoot));
278258
}
279259

280260
/// Runs the mapper's prettification logic on [member] and returns the result.

0 commit comments

Comments
 (0)