summaryrefslogtreecommitdiff
path: root/ext/node/package_json.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/package_json.rs')
-rw-r--r--ext/node/package_json.rs33
1 files changed, 23 insertions, 10 deletions
diff --git a/ext/node/package_json.rs b/ext/node/package_json.rs
index b28207db8..877acfc7a 100644
--- a/ext/node/package_json.rs
+++ b/ext/node/package_json.rs
@@ -1,8 +1,7 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
-use deno_config::package_json::PackageJson;
-use deno_config::package_json::PackageJsonRc;
-use deno_fs::DenoConfigFsAdapter;
+use deno_package_json::PackageJson;
+use deno_package_json::PackageJsonRc;
use std::cell::RefCell;
use std::collections::HashMap;
use std::io::ErrorKind;
@@ -24,9 +23,7 @@ impl PackageJsonThreadLocalCache {
}
}
-impl deno_config::package_json::PackageJsonCache
- for PackageJsonThreadLocalCache
-{
+impl deno_package_json::PackageJsonCache for PackageJsonThreadLocalCache {
fn get(&self, path: &Path) -> Option<PackageJsonRc> {
CACHE.with(|cache| cache.borrow().get(path).cloned())
}
@@ -36,6 +33,20 @@ impl deno_config::package_json::PackageJsonCache
}
}
+pub struct DenoPkgJsonFsAdapter<'a>(pub &'a dyn deno_fs::FileSystem);
+
+impl<'a> deno_package_json::fs::DenoPkgJsonFs for DenoPkgJsonFsAdapter<'a> {
+ fn read_to_string_lossy(
+ &self,
+ path: &Path,
+ ) -> Result<String, std::io::Error> {
+ self
+ .0
+ .read_text_file_lossy_sync(path, None)
+ .map_err(|err| err.into_io_error())
+ }
+}
+
/// Helper to load a package.json file using the thread local cache
/// in deno_node.
pub fn load_pkg_json(
@@ -44,14 +55,16 @@ pub fn load_pkg_json(
) -> Result<Option<PackageJsonRc>, PackageJsonLoadError> {
let result = PackageJson::load_from_path(
path,
- &DenoConfigFsAdapter::new(fs),
+ &DenoPkgJsonFsAdapter(fs),
Some(&PackageJsonThreadLocalCache),
);
match result {
Ok(pkg_json) => Ok(Some(pkg_json)),
- Err(deno_config::package_json::PackageJsonLoadError::Io {
- source, ..
- }) if source.kind() == ErrorKind::NotFound => Ok(None),
+ Err(deno_package_json::PackageJsonLoadError::Io { source, .. })
+ if source.kind() == ErrorKind::NotFound =>
+ {
+ Ok(None)
+ }
Err(err) => Err(PackageJsonLoadError(err)),
}
}