diff options
Diffstat (limited to 'runtime')
| -rw-r--r-- | runtime/js/40_write_file.js | 2 | ||||
| -rw-r--r-- | runtime/ops/fs.rs | 14 |
2 files changed, 12 insertions, 4 deletions
diff --git a/runtime/js/40_write_file.js b/runtime/js/40_write_file.js index 36bd317b7..8d026245f 100644 --- a/runtime/js/40_write_file.js +++ b/runtime/js/40_write_file.js @@ -17,6 +17,7 @@ options.mode, options.append ?? false, options.create ?? true, + options.createNew ?? false, data, ); } @@ -41,6 +42,7 @@ options.mode, options.append ?? false, options.create ?? true, + options.createNew ?? false, data, cancelRid, ); 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 || { |
