summaryrefslogtreecommitdiff
path: root/resolvers/deno/fs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'resolvers/deno/fs.rs')
-rw-r--r--resolvers/deno/fs.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/resolvers/deno/fs.rs b/resolvers/deno/fs.rs
new file mode 100644
index 000000000..b08be3798
--- /dev/null
+++ b/resolvers/deno/fs.rs
@@ -0,0 +1,27 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+
+use std::path::Path;
+use std::path::PathBuf;
+
+pub struct DirEntry {
+ pub name: String,
+ pub is_file: bool,
+ pub is_directory: bool,
+}
+
+pub trait DenoResolverFs {
+ fn read_to_string_lossy(&self, path: &Path) -> std::io::Result<String>;
+ fn realpath_sync(&self, path: &Path) -> std::io::Result<PathBuf>;
+ fn is_dir_sync(&self, path: &Path) -> bool;
+ fn read_dir_sync(&self, dir_path: &Path) -> std::io::Result<Vec<DirEntry>>;
+}
+
+pub(crate) struct DenoPkgJsonFsAdapter<'a, Fs: DenoResolverFs>(pub &'a Fs);
+
+impl<'a, Fs: DenoResolverFs> deno_package_json::fs::DenoPkgJsonFs
+ for DenoPkgJsonFsAdapter<'a, Fs>
+{
+ fn read_to_string_lossy(&self, path: &Path) -> std::io::Result<String> {
+ self.0.read_to_string_lossy(path)
+ }
+}