set packageConfigPath and update DWDS version to 24.3.5 (#2589)
diff --git a/webdev/CHANGELOG.md b/webdev/CHANGELOG.md
index 491bdb3..442357e 100644
--- a/webdev/CHANGELOG.md
+++ b/webdev/CHANGELOG.md
@@ -1,4 +1,6 @@
-## 3.7.1-wip
+## 3.7.1
+- Update `dwds` constraint to `24.3.5`.
+- Added a utility method to locate `package_config.json` and set it in the `loadStrategy`.
## 3.7.0
diff --git a/webdev/lib/src/serve/utils.dart b/webdev/lib/src/serve/utils.dart
index 962305b..7c33619 100644
--- a/webdev/lib/src/serve/utils.dart
+++ b/webdev/lib/src/serve/utils.dart
@@ -82,3 +82,26 @@
}
}
}
+
+/// Returns the absolute file path of the `package_config.json` file in the `.dart_tool`
+/// directory, searching recursively from the current directory hierarchy.
+String? findPackageConfigFilePath() {
+ var candidateDir = Directory(p.current).absolute;
+
+ while (true) {
+ final candidatePackageConfigFile =
+ File(p.join(candidateDir.path, '.dart_tool', 'package_config.json'));
+
+ if (candidatePackageConfigFile.existsSync()) {
+ return candidatePackageConfigFile.path;
+ }
+
+ final parentDir = candidateDir.parent;
+ if (parentDir.path == candidateDir.path) {
+ // We've reached the root directory
+ return null;
+ }
+
+ candidateDir = parentDir;
+ }
+}
diff --git a/webdev/lib/src/serve/webdev_server.dart b/webdev/lib/src/serve/webdev_server.dart
index bdf6320..edcfb84 100644
--- a/webdev/lib/src/serve/webdev_server.dart
+++ b/webdev/lib/src/serve/webdev_server.dart
@@ -21,6 +21,7 @@
import '../util.dart';
import 'chrome.dart';
import 'handlers/favicon_handler.dart';
+import 'utils.dart' show findPackageConfigFilePath;
Logger _logger = Logger('WebDevServer');
@@ -141,6 +142,7 @@
options.configuration.reload,
assetReader,
buildSettings,
+ packageConfigPath: findPackageConfigFilePath(),
).strategy;
if (options.configuration.enableExpressionEvaluation) {
diff --git a/webdev/lib/src/version.dart b/webdev/lib/src/version.dart
index cf9b803..d77ca7e 100644
--- a/webdev/lib/src/version.dart
+++ b/webdev/lib/src/version.dart
@@ -1,2 +1,2 @@
// Generated code. Do not modify.
-const packageVersion = '3.7.1-wip';
+const packageVersion = '3.7.1';
diff --git a/webdev/pubspec.yaml b/webdev/pubspec.yaml
index 921aabc..1180595 100644
--- a/webdev/pubspec.yaml
+++ b/webdev/pubspec.yaml
@@ -1,6 +1,6 @@
name: webdev
# Every time this changes you need to run `dart run build_runner build`.
-version: 3.7.1-wip
+version: 3.7.1
# We should not depend on a dev SDK before publishing.
# publish_to: none
description: >-
@@ -19,7 +19,7 @@
crypto: ^3.0.2
dds: ^4.1.0
# Pin DWDS to avoid dependency conflicts with vm_service:
- dwds: 24.2.0
+ dwds: 24.3.5
http: ^1.0.0
http_multi_server: ^3.2.0
io: ^1.0.3