summaryrefslogtreecommitdiff
path: root/runtime/ops/fs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ops/fs.rs')
-rw-r--r--runtime/ops/fs.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/runtime/ops/fs.rs b/runtime/ops/fs.rs
index 8d719393f..b661c6ea8 100644
--- a/runtime/ops/fs.rs
+++ b/runtime/ops/fs.rs
@@ -222,14 +222,18 @@ async fn op_open_async(
}
#[inline]
-fn write_open_options(create: bool, append: bool) -> OpenOptions {
+fn write_open_options(
+ create: bool,
+ append: bool,
+ create_new: bool,
+) -> OpenOptions {
OpenOptions {
read: false,
write: true,
create,
truncate: !append,
append,
- create_new: false,
+ create_new,
}
}
@@ -240,13 +244,14 @@ fn op_write_file_sync(
mode: Option<u32>,
append: bool,
create: bool,
+ create_new: bool,
data: ZeroCopyBuf,
) -> Result<(), AnyError> {
let (path, open_options) = open_helper(
state,
&path,
mode,
- Some(&write_open_options(create, append)),
+ Some(&write_open_options(create, append, create_new)),
"Deno.writeFileSync()",
)?;
write_file(&path, open_options, mode, data)
@@ -259,6 +264,7 @@ async fn op_write_file_async(
mode: Option<u32>,
append: bool,
create: bool,
+ create_new: bool,
data: ZeroCopyBuf,
cancel_rid: Option<ResourceId>,
) -> Result<(), AnyError> {
@@ -274,7 +280,7 @@ async fn op_write_file_async(
&mut state.borrow_mut(),
&path,
mode,
- Some(&write_open_options(create, append)),
+ Some(&write_open_options(create, append, create_new)),
"Deno.writeFile()",
)?;
let write_future = tokio::task::spawn_blocking(move || {