diff options
| author | Divy Srivastava <dj.srivastava23@gmail.com> | 2024-01-05 18:28:33 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-05 18:28:33 +0530 |
| commit | df062d2c788fd76546d59c67452d8d0fe569c533 (patch) | |
| tree | b82a837378469c3eb1456aeea40354601b040793 /runtime/permissions | |
| parent | bac51f66aa89dd9b79a3c4e844423c3a3399ea13 (diff) | |
fix(ext/node): add fs.cp, fs.cpSync, promises.cp (#21745)
Fixes https://github.com/denoland/deno/issues/20803
Fixes https://github.com/denoland/deno/issues/21723
Performance: copying a 48GiB rust `target` folder (recursive)
| Platform | `deno` | `node v21.5` | Improvement |
| -------- | ------- | ------- | ------- |
| macOS (APFS) | 3.1secs | 127.99 secs | **42x** |
| Windows | 18.3secs | 67.2secs | **3.8x** |
Copying files with varying sizes:

Diffstat (limited to 'runtime/permissions')
| -rw-r--r-- | runtime/permissions/mod.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/runtime/permissions/mod.rs b/runtime/permissions/mod.rs index 7740a8e31..89adab361 100644 --- a/runtime/permissions/mod.rs +++ b/runtime/permissions/mod.rs @@ -1384,6 +1384,15 @@ impl deno_node::NodePermissions for PermissionsContainer { self.0.lock().read.check(path, api_name) } + #[inline(always)] + fn check_write_with_api_name( + &self, + path: &Path, + api_name: Option<&str>, + ) -> Result<(), AnyError> { + self.0.lock().write.check(path, api_name) + } + fn check_sys(&self, kind: &str, api_name: &str) -> Result<(), AnyError> { self.0.lock().sys.check(kind, Some(api_name)) } |
