Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/Node/FS/Async.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export {
realpath as realpathImpl,
unlink as unlinkImpl,
rmdir as rmdirImpl,
rm as rmImpl,
mkdir as mkdirImpl,
readdir as readdirImpl,
utimes as utimesImpl,
Expand Down
31 changes: 28 additions & 3 deletions src/Node/FS/Async.purs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ module Node.FS.Async
, realpath'
, unlink
, rmdir
, rmdir'
, rm
, rm'
, mkdir
, mkdir'
, readdir
Expand Down Expand Up @@ -75,7 +78,8 @@ foreign import symlinkImpl :: Fn4 FilePath FilePath String (JSCallback Unit) Uni
foreign import readlinkImpl :: Fn2 FilePath (JSCallback FilePath) Unit
foreign import realpathImpl :: forall cache. Fn3 FilePath { | cache } (JSCallback FilePath) Unit
foreign import unlinkImpl :: Fn2 FilePath (JSCallback Unit) Unit
foreign import rmdirImpl :: Fn2 FilePath (JSCallback Unit) Unit
foreign import rmdirImpl :: Fn3 FilePath { maxRetries :: Int, retryDelay :: Int } (JSCallback Unit) Unit
foreign import rmImpl :: Fn3 FilePath { force :: Boolean, maxRetries :: Int, recursive :: Boolean, retryDelay :: Int } (JSCallback Unit) Unit
foreign import mkdirImpl :: Fn3 FilePath { recursive :: Boolean, mode :: String } (JSCallback Unit) Unit
foreign import readdirImpl :: Fn2 FilePath (JSCallback (Array FilePath)) Unit
foreign import utimesImpl :: Fn4 FilePath Int Int (JSCallback Unit) Unit
Expand Down Expand Up @@ -189,9 +193,30 @@ unlink file cb = mkEffect $ \_ -> runFn2
rmdir :: FilePath
-> Callback Unit
-> Effect Unit
rmdir path cb = rmdir' path { maxRetries: 0, retryDelay: 100 } cb

-- | Deletes a directory with options.
rmdir' :: FilePath
-> { maxRetries :: Int, retryDelay :: Int }
-> Callback Unit
-> Effect Unit
rmdir' path opts cb = mkEffect $ \_ -> runFn3
rmdirImpl path opts (handleCallback cb)

-- | Deletes a file or directory.
rm :: FilePath
-> Callback Unit
-> Effect Unit
rm path = rm' path { force: false, maxRetries: 100, recursive: false, retryDelay: 1000 }

-- | Deletes a file or directory with options.
rm' :: FilePath
-> { force :: Boolean, maxRetries :: Int, recursive :: Boolean, retryDelay :: Int }
-> Callback Unit
-> Effect Unit
rm' path opts cb = mkEffect $ \_ -> runFn3
rmImpl path opts (handleCallback cb)

rmdir file cb = mkEffect $ \_ -> runFn2
rmdirImpl file (handleCallback cb)

-- | Makes a new directory.
mkdir :: FilePath
Expand Down
1 change: 1 addition & 0 deletions src/Node/FS/Sync.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export {
realpathSync as realpathSyncImpl,
unlinkSync as unlinkSyncImpl,
rmdirSync as rmdirSyncImpl,
rmSync as rmSyncImpl,
mkdirSync as mkdirSyncImpl,
readdirSync as readdirSyncImpl,
utimesSync as utimesSyncImpl,
Expand Down
28 changes: 25 additions & 3 deletions src/Node/FS/Sync.purs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ module Node.FS.Sync
, realpath'
, unlink
, rmdir
, rmdir'
, rm
, rm'
, mkdir
, mkdir'
, readdir
Expand Down Expand Up @@ -62,7 +65,8 @@ foreign import symlinkSyncImpl :: Fn3 FilePath FilePath String Unit
foreign import readlinkSyncImpl :: Fn1 FilePath FilePath
foreign import realpathSyncImpl :: forall cache. Fn2 FilePath { | cache } FilePath
foreign import unlinkSyncImpl :: Fn1 FilePath Unit
foreign import rmdirSyncImpl :: Fn1 FilePath Unit
foreign import rmdirSyncImpl :: Fn2 FilePath { maxRetries :: Int, retryDelay :: Int } Unit
foreign import rmSyncImpl :: Fn2 FilePath { force :: Boolean, maxRetries :: Int, recursive :: Boolean, retryDelay :: Int } Unit
foreign import mkdirSyncImpl :: Fn2 FilePath { recursive :: Boolean, mode :: String } Unit
foreign import readdirSyncImpl :: Fn1 FilePath (Array FilePath)
foreign import utimesSyncImpl :: Fn3 FilePath Int Int Unit
Expand Down Expand Up @@ -166,9 +170,27 @@ unlink file = mkEffect $ \_ -> runFn1
-- | Deletes a directory.
rmdir :: FilePath
-> Effect Unit
rmdir path = rmdir' path { maxRetries: 0, retryDelay: 100 }

-- | Deletes a directory with options.
rmdir' :: FilePath
-> { maxRetries :: Int, retryDelay :: Int }
-> Effect Unit
rmdir' path opts = mkEffect $ \_ -> runFn2
rmdirSyncImpl path opts

-- | Deletes a file or directory.
rm :: FilePath
-> Effect Unit
rm path = rm' path { force: false, maxRetries: 100, recursive: false, retryDelay: 1000 }

-- | Deletes a file or directory with options.
rm' :: FilePath
-> { force :: Boolean, maxRetries :: Int, recursive :: Boolean, retryDelay :: Int }
-> Effect Unit
rm' path opts = mkEffect $ \_ -> runFn2
rmSyncImpl path opts

rmdir file = mkEffect $ \_ -> runFn1
rmdirSyncImpl file

-- | Makes a new directory.
mkdir :: FilePath
Expand Down