@@ -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,28 @@ 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+ rmdir' :: FilePath
199+ -> { maxRetries :: Int , retryDelay :: Int }
200+ -> Callback Unit
201+ -> Effect Unit
202+ rmdir' path opts cb = mkEffect $ \_ -> runFn3
203+ rmdirImpl path opts (handleCallback cb)
204+
205+ rm :: FilePath
206+ -> Callback Unit
207+ -> Effect Unit
208+ rm path = rm' path { force: false , maxRetries: 100 , recursive: false , retryDelay: 1000 }
209+
210+ -- | Deletes a directory.
211+ rm' :: FilePath
212+ -> { force :: Boolean , maxRetries :: Int , recursive :: Boolean , retryDelay :: Int }
213+ -> Callback Unit
214+ -> Effect Unit
215+ rm' path opts cb = mkEffect $ \_ -> runFn3
216+ rmImpl path opts (handleCallback cb)
192217
193- rmdir file cb = mkEffect $ \_ -> runFn2
194- rmdirImpl file (handleCallback cb)
195218
196219-- | Makes a new directory.
197220mkdir :: FilePath
0 commit comments