@@ -12,6 +12,9 @@ module Node.FS.Async
12
12
, realpath'
13
13
, unlink
14
14
, rmdir
15
+ , rmdir'
16
+ , rm
17
+ , rm'
15
18
, mkdir
16
19
, mkdir'
17
20
, readdir
@@ -75,7 +78,8 @@ foreign import symlinkImpl :: Fn4 FilePath FilePath String (JSCallback Unit) Uni
75
78
foreign import readlinkImpl :: Fn2 FilePath (JSCallback FilePath ) Unit
76
79
foreign import realpathImpl :: forall cache . Fn3 FilePath { | cache } (JSCallback FilePath ) Unit
77
80
foreign 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
79
83
foreign import mkdirImpl :: Fn3 FilePath { recursive :: Boolean , mode :: String } (JSCallback Unit ) Unit
80
84
foreign import readdirImpl :: Fn2 FilePath (JSCallback (Array FilePath )) Unit
81
85
foreign import utimesImpl :: Fn4 FilePath Int Int (JSCallback Unit ) Unit
@@ -189,9 +193,30 @@ unlink file cb = mkEffect $ \_ -> runFn2
189
193
rmdir :: FilePath
190
194
-> Callback Unit
191
195
-> 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)
192
219
193
- rmdir file cb = mkEffect $ \_ -> runFn2
194
- rmdirImpl file (handleCallback cb)
195
220
196
221
-- | Makes a new directory.
197
222
mkdir :: FilePath
0 commit comments