mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
[flutter_tools] Remove packageMap usage and update package_config (#54301)
* remove PackageMap * Update flutter_web_platform.dart
This commit is contained in:
parent
01a47b9b1a
commit
0d459f2326
@ -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 {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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(
|
||||||
Cache.flutterRoot,
|
globals.fs.file(globals.fs.path.join(
|
||||||
'packages',
|
Cache.flutterRoot,
|
||||||
'flutter_tools',
|
'packages',
|
||||||
'.packages',
|
'flutter_tools',
|
||||||
), fileSystem: globals.fs);
|
'.packages',
|
||||||
|
)).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,19 +179,19 @@ 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',
|
||||||
'static',
|
'static',
|
||||||
'host.dart.js',
|
'host.dart.js',
|
||||||
));
|
));
|
||||||
|
|
||||||
Future<shelf.Response> _handleStaticArtifact(shelf.Request request) async {
|
Future<shelf.Response> _handleStaticArtifact(shelf.Request request) async {
|
||||||
if (request.requestedUri.path.contains('require.js')) {
|
if (request.requestedUri.path.contains('require.js')) {
|
||||||
@ -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 {
|
|||||||
|
|
||||||
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),
|
||||||
));
|
));
|
||||||
|
Loading…
Reference in New Issue
Block a user