Unverified Commit 0d459f23 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] Remove packageMap usage and update package_config (#54301)

* remove PackageMap

* Update flutter_web_platform.dart
parent 01a47b9b
...@@ -10,12 +10,7 @@ import 'dart:typed_data'; ...@@ -10,12 +10,7 @@ import 'dart:typed_data';
import 'package:async/async.dart'; import 'package:async/async.dart';
import 'package:http_multi_server/http_multi_server.dart'; import 'package:http_multi_server/http_multi_server.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
// TODO(bkonyi): remove deprecated member usage, https://github.com/flutter/flutter/issues/51951 import 'package:package_config/package_config.dart';
// ignore: deprecated_member_use
import 'package:package_config/discovery.dart';
// TODO(bkonyi): remove deprecated member usage, https://github.com/flutter/flutter/issues/51951
// ignore: deprecated_member_use
import 'package:package_config/packages.dart';
import 'package:path/path.dart' as p; // ignore: package_path_import import 'package:path/path.dart' as p; // ignore: package_path_import
import 'package:pool/pool.dart'; import 'package:pool/pool.dart';
import 'package:shelf/shelf.dart' as shelf; import 'package:shelf/shelf.dart' as shelf;
...@@ -102,19 +97,35 @@ class FlutterWebPlatform extends PlatformPlugin { ...@@ -102,19 +97,35 @@ class FlutterWebPlatform extends PlatformPlugin {
); );
} }
// TODO(bkonyi): remove deprecated member usage, https://github.com/flutter/flutter/issues/51951 final Future<PackageConfig> _packagesFuture = loadPackageConfigUri(
// ignore: deprecated_member_use Uri.base.resolve('.packages'),
final Future<Packages> _packagesFuture = loadPackagesFile(Uri.base.resolve('.packages')); loader: (Uri uri) {
final File file = globals.fs.file(uri);
if (!file.existsSync()) {
return null;
}
return file.readAsBytes();
}
);
final PackageMap _flutterToolsPackageMap = PackageMap(p.join( final Future<PackageConfig> _flutterToolsPackageMap = loadPackageConfigUri(
globals.fs.file(globals.fs.path.join(
Cache.flutterRoot, Cache.flutterRoot,
'packages', 'packages',
'flutter_tools', 'flutter_tools',
'.packages', '.packages',
), fileSystem: globals.fs); )).absolute.uri,
loader: (Uri uri) {
final File file = globals.fs.file(uri);
if (!file.existsSync()) {
return null;
}
return file.readAsBytes();
}
);
/// Uri of the test package. /// Uri of the test package.
Uri get testUri => _flutterToolsPackageMap.map['test']; Future<Uri> get testUri async => (await _flutterToolsPackageMap)['test']?.packageUriRoot;
/// The test runner configuration. /// The test runner configuration.
final Configuration _config; final Configuration _config;
...@@ -168,13 +179,13 @@ class FlutterWebPlatform extends PlatformPlugin { ...@@ -168,13 +179,13 @@ class FlutterWebPlatform extends PlatformPlugin {
)); ));
/// The precompiled test javascript. /// The precompiled test javascript.
File get testDartJs => globals.fs.file(globals.fs.path.join( Future<File> get testDartJs async => globals.fs.file(globals.fs.path.join(
testUri.toFilePath(), (await testUri).toFilePath(),
'dart.js', 'dart.js',
)); ));
File get testHostDartJs => globals.fs.file(globals.fs.path.join( Future<File> get testHostDartJs async => globals.fs.file(globals.fs.path.join(
testUri.toFilePath(), (await testUri).toFilePath(),
'src', 'src',
'runner', 'runner',
'browser', 'browser',
...@@ -203,12 +214,12 @@ class FlutterWebPlatform extends PlatformPlugin { ...@@ -203,12 +214,12 @@ class FlutterWebPlatform extends PlatformPlugin {
); );
} else if (request.requestedUri.path.contains('static/dart.js')) { } else if (request.requestedUri.path.contains('static/dart.js')) {
return shelf.Response.ok( return shelf.Response.ok(
testDartJs.openRead(), (await testDartJs).openRead(),
headers: <String, String>{'Content-Type': 'text/javascript'}, headers: <String, String>{'Content-Type': 'text/javascript'},
); );
} else if (request.requestedUri.path.contains('host.dart.js')) { } else if (request.requestedUri.path.contains('host.dart.js')) {
return shelf.Response.ok( return shelf.Response.ok(
testHostDartJs.openRead(), (await testHostDartJs).openRead(),
headers: <String, String>{'Content-Type': 'text/javascript'}, headers: <String, String>{'Content-Type': 'text/javascript'},
); );
} else { } else {
...@@ -218,10 +229,8 @@ class FlutterWebPlatform extends PlatformPlugin { ...@@ -218,10 +229,8 @@ class FlutterWebPlatform extends PlatformPlugin {
FutureOr<shelf.Response> _packageFilesHandler(shelf.Request request) async { FutureOr<shelf.Response> _packageFilesHandler(shelf.Request request) async {
if (request.requestedUri.pathSegments.first == 'packages') { if (request.requestedUri.pathSegments.first == 'packages') {
// TODO(bkonyi): remove deprecated member usage, https://github.com/flutter/flutter/issues/51951 final PackageConfig packageConfig = await _packagesFuture;
// ignore: deprecated_member_use final Uri fileUri = packageConfig.resolve(Uri(
final Packages packages = await _packagesFuture;
final Uri fileUri = packages.resolve(Uri(
scheme: 'package', scheme: 'package',
pathSegments: request.requestedUri.pathSegments.skip(1), pathSegments: request.requestedUri.pathSegments.skip(1),
)); ));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment