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.rs68
1 files changed, 16 insertions, 52 deletions
diff --git a/runtime/ops/fs.rs b/runtime/ops/fs.rs
index 99b37916d..2bcd6cacc 100644
--- a/runtime/ops/fs.rs
+++ b/runtime/ops/fs.rs
@@ -4,7 +4,6 @@ use super::io::StdFileResource;
use super::utils::into_string;
use crate::fs_util::canonicalize_path;
use crate::permissions::Permissions;
-use deno_core::error::bad_resource_id;
use deno_core::error::custom_error;
use deno_core::error::type_error;
use deno_core::error::AnyError;
@@ -24,11 +23,16 @@ use serde::Serialize;
use std::borrow::Cow;
use std::cell::RefCell;
use std::convert::From;
-use std::env::{current_dir, set_current_dir, temp_dir};
+use std::env::current_dir;
+use std::env::set_current_dir;
+use std::env::temp_dir;
use std::io;
+use std::io::Error;
+use std::io::Seek;
+use std::io::SeekFrom;
use std::io::Write;
-use std::io::{Error, Seek, SeekFrom};
-use std::path::{Path, PathBuf};
+use std::path::Path;
+use std::path::PathBuf;
use std::rc::Rc;
use std::time::SystemTime;
use std::time::UNIX_EPOCH;
@@ -339,12 +343,7 @@ async fn op_seek_async(
.resource_table
.get::<StdFileResource>(rid)?;
- if resource.fs_file.is_none() {
- return Err(bad_resource_id());
- }
-
- let fs_file = resource.fs_file.as_ref().unwrap();
- let std_file = fs_file.0.as_ref().unwrap().clone();
+ let std_file = resource.std_file()?;
tokio::task::spawn_blocking(move || {
let mut std_file = std_file.lock().unwrap();
@@ -376,12 +375,7 @@ async fn op_fdatasync_async(
.resource_table
.get::<StdFileResource>(rid)?;
- if resource.fs_file.is_none() {
- return Err(bad_resource_id());
- }
-
- let fs_file = resource.fs_file.as_ref().unwrap();
- let std_file = fs_file.0.as_ref().unwrap().clone();
+ let std_file = resource.std_file()?;
tokio::task::spawn_blocking(move || {
let std_file = std_file.lock().unwrap();
@@ -410,12 +404,7 @@ async fn op_fsync_async(
.resource_table
.get::<StdFileResource>(rid)?;
- if resource.fs_file.is_none() {
- return Err(bad_resource_id());
- }
-
- let fs_file = resource.fs_file.as_ref().unwrap();
- let std_file = fs_file.0.as_ref().unwrap().clone();
+ let std_file = resource.std_file()?;
tokio::task::spawn_blocking(move || {
let std_file = std_file.lock().unwrap();
@@ -447,12 +436,7 @@ async fn op_fstat_async(
.resource_table
.get::<StdFileResource>(rid)?;
- if resource.fs_file.is_none() {
- return Err(bad_resource_id());
- }
-
- let fs_file = resource.fs_file.as_ref().unwrap();
- let std_file = fs_file.0.as_ref().unwrap().clone();
+ let std_file = resource.std_file()?;
let metadata = tokio::task::spawn_blocking(move || {
let std_file = std_file.lock().unwrap();
@@ -499,12 +483,7 @@ async fn op_flock_async(
.resource_table
.get::<StdFileResource>(rid)?;
- if resource.fs_file.is_none() {
- return Err(bad_resource_id());
- }
-
- let fs_file = resource.fs_file.as_ref().unwrap();
- let std_file = fs_file.0.as_ref().unwrap().clone();
+ let std_file = resource.std_file()?;
tokio::task::spawn_blocking(move || -> Result<(), AnyError> {
let std_file = std_file.lock().unwrap();
@@ -548,12 +527,7 @@ async fn op_funlock_async(
.resource_table
.get::<StdFileResource>(rid)?;
- if resource.fs_file.is_none() {
- return Err(bad_resource_id());
- }
-
- let fs_file = resource.fs_file.as_ref().unwrap();
- let std_file = fs_file.0.as_ref().unwrap().clone();
+ let std_file = resource.std_file()?;
tokio::task::spawn_blocking(move || -> Result<(), AnyError> {
let std_file = std_file.lock().unwrap();
@@ -1636,12 +1610,7 @@ async fn op_ftruncate_async(
.resource_table
.get::<StdFileResource>(rid)?;
- if resource.fs_file.is_none() {
- return Err(bad_resource_id());
- }
-
- let fs_file = resource.fs_file.as_ref().unwrap();
- let std_file = fs_file.0.as_ref().unwrap().clone();
+ let std_file = resource.std_file()?;
tokio::task::spawn_blocking(move || {
let std_file = std_file.lock().unwrap();
@@ -1938,12 +1907,7 @@ async fn op_futime_async(
.resource_table
.get::<StdFileResource>(rid)?;
- if resource.fs_file.is_none() {
- return Err(bad_resource_id());
- }
-
- let fs_file = resource.fs_file.as_ref().unwrap();
- let std_file = fs_file.0.as_ref().unwrap().clone();
+ let std_file = resource.std_file()?;
tokio::task::spawn_blocking(move || {
let std_file = std_file.lock().unwrap();
filetime::set_file_handle_times(&std_file, Some(atime), Some(mtime))?;