@@ -12,6 +12,9 @@ module Node.FS.Async
1212 , realpath'
1313 , unlink
1414 , rmdir
15+ , rmdir'
16+ , rm
17+ , rm'
1518 , mkdir
1619 , mkdir'
1720 , readdir
@@ -75,7 +78,8 @@ foreign import symlinkImpl :: Fn4 FilePath FilePath String (JSCallback Unit) Uni
7578foreign import readlinkImpl :: Fn2 FilePath (JSCallback FilePath ) Unit
7679foreign import realpathImpl :: forall cache . Fn3 FilePath { | cache } (JSCallback FilePath ) Unit
7780foreign import unlinkImpl :: Fn2 FilePath (JSCallback Unit ) Unit
78- foreign import rmdirImpl :: Fn2 FilePath (JSCallback Unit ) Unit
81+ foreign import rmdirImpl :: Fn3 FilePath { maxRetries :: Int , retryDelay :: Int } (JSCallback Unit ) Unit
82+ foreign import rmImpl :: Fn3 FilePath { force :: Boolean , maxRetries :: Int , recursive :: Boolean , retryDelay :: Int } (JSCallback Unit ) Unit
7983foreign import mkdirImpl :: Fn3 FilePath { recursive :: Boolean , mode :: String } (JSCallback Unit ) Unit
8084foreign import readdirImpl :: Fn2 FilePath (JSCallback (Array FilePath )) Unit
8185foreign import utimesImpl :: Fn4 FilePath Int Int (JSCallback Unit ) Unit
@@ -189,9 +193,30 @@ unlink file cb = mkEffect $ \_ -> runFn2
189193rmdir :: FilePath
190194 -> Callback Unit
191195 -> Effect Unit
196+ rmdir path cb = rmdir' path { maxRetries: 0 , retryDelay: 100 } cb
197+
198+ -- | Deletes a directory with options.
199+ rmdir' :: FilePath
200+ -> { maxRetries :: Int , retryDelay :: Int }
201+ -> Callback Unit
202+ -> Effect Unit
203+ rmdir' path opts cb = mkEffect $ \_ -> runFn3
204+ rmdirImpl path opts (handleCallback cb)
205+
206+ -- | Deletes a file or directory.
207+ rm :: FilePath
208+ -> Callback Unit
209+ -> Effect Unit
210+ rm path = rm' path { force: false , maxRetries: 100 , recursive: false , retryDelay: 1000 }
211+
212+ -- | Deletes a file or directory with options.
213+ rm' :: FilePath
214+ -> { force :: Boolean , maxRetries :: Int , recursive :: Boolean , retryDelay :: Int }
215+ -> Callback Unit
216+ -> Effect Unit
217+ rm' path opts cb = mkEffect $ \_ -> runFn3
218+ rmImpl path opts (handleCallback cb)
192219
193- rmdir file cb = mkEffect $ \_ -> runFn2
194- rmdirImpl file (handleCallback cb)
195220
196221-- | Makes a new directory.
197222mkdir :: FilePath
0 commit comments