summaryrefslogtreecommitdiff
path: root/ext/io/fs.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-05-10 20:06:59 -0400
committerGitHub <noreply@github.com>2023-05-10 20:06:59 -0400
commit28aa489de9cd4f995ec2fc02e2c9d224e89f4c01 (patch)
treeb316937a47fe9c8f9f6768bc13b9a686c07cf42f /ext/io/fs.rs
parent5fd74bfa1c5ed514c3e19fdb2e8590fe251d3ee6 (diff)
feat(compile): unstable npm and node specifier support (#19005)
This is the initial support for npm and node specifiers in `deno compile`. The npm packages are included in the binary and read from it via a virtual file system. This also supports the `--node-modules-dir` flag, dependencies specified in a package.json, and npm binary commands (ex. `deno compile --unstable npm:cowsay`) Closes #16632
Diffstat (limited to 'ext/io/fs.rs')
-rw-r--r--ext/io/fs.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/io/fs.rs b/ext/io/fs.rs
index a333e1dd5..e335324f5 100644
--- a/ext/io/fs.rs
+++ b/ext/io/fs.rs
@@ -15,6 +15,7 @@ use deno_core::OpState;
use deno_core::ResourceId;
use tokio::task::JoinError;
+#[derive(Debug)]
pub enum FsError {
Io(io::Error),
FileBusy,
@@ -29,6 +30,14 @@ impl FsError {
Self::NotSupported => io::ErrorKind::Other,
}
}
+
+ pub fn into_io_error(self) -> io::Error {
+ match self {
+ FsError::Io(err) => err,
+ FsError::FileBusy => io::Error::new(self.kind(), "file busy"),
+ FsError::NotSupported => io::Error::new(self.kind(), "not supported"),
+ }
+ }
}
impl From<io::Error> for FsError {