Skip to content

Commit e3e3207

Browse files
committed
Add rmdir', rm, rm'
1 parent 7dfc7ca commit e3e3207

File tree

4 files changed

+51
-6
lines changed

4 files changed

+51
-6
lines changed

src/Node/FS/Async.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export {
1010
realpath as realpathImpl,
1111
unlink as unlinkImpl,
1212
rmdir as rmdirImpl,
13+
rm as rmImpl,
1314
mkdir as mkdirImpl,
1415
readdir as readdirImpl,
1516
utimes as utimesImpl,

src/Node/FS/Async.purs

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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
7578
foreign import readlinkImpl :: Fn2 FilePath (JSCallback FilePath) Unit
7679
foreign import realpathImpl :: forall cache. Fn3 FilePath { | cache } (JSCallback FilePath) Unit
7780
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
7983
foreign import mkdirImpl :: Fn3 FilePath { recursive :: Boolean, mode :: String } (JSCallback Unit) Unit
8084
foreign import readdirImpl :: Fn2 FilePath (JSCallback (Array FilePath)) Unit
8185
foreign import utimesImpl :: Fn4 FilePath Int Int (JSCallback Unit) Unit
@@ -189,9 +193,28 @@ unlink file cb = mkEffect $ \_ -> runFn2
189193
rmdir :: 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.
197220
mkdir :: FilePath

src/Node/FS/Sync.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export {
1010
realpathSync as realpathSyncImpl,
1111
unlinkSync as unlinkSyncImpl,
1212
rmdirSync as rmdirSyncImpl,
13+
rmSync as rmSyncImpl,
1314
mkdirSync as mkdirSyncImpl,
1415
readdirSync as readdirSyncImpl,
1516
utimesSync as utimesSyncImpl,

src/Node/FS/Sync.purs

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ module Node.FS.Sync
1111
, realpath'
1212
, unlink
1313
, rmdir
14+
, rmdir'
15+
, rm
16+
, rm'
1417
, mkdir
1518
, mkdir'
1619
, readdir
@@ -62,7 +65,8 @@ foreign import symlinkSyncImpl :: Fn3 FilePath FilePath String Unit
6265
foreign import readlinkSyncImpl :: Fn1 FilePath FilePath
6366
foreign import realpathSyncImpl :: forall cache. Fn2 FilePath { | cache } FilePath
6467
foreign import unlinkSyncImpl :: Fn1 FilePath Unit
65-
foreign import rmdirSyncImpl :: Fn1 FilePath Unit
68+
foreign import rmdirSyncImpl :: Fn2 FilePath { maxRetries :: Int, retryDelay :: Int } Unit
69+
foreign import rmSyncImpl :: Fn2 FilePath { force :: Boolean, maxRetries :: Int, recursive :: Boolean, retryDelay :: Int } Unit
6670
foreign import mkdirSyncImpl :: Fn2 FilePath { recursive :: Boolean, mode :: String } Unit
6771
foreign import readdirSyncImpl :: Fn1 FilePath (Array FilePath)
6872
foreign import utimesSyncImpl :: Fn3 FilePath Int Int Unit
@@ -166,9 +170,25 @@ unlink file = mkEffect $ \_ -> runFn1
166170
-- | Deletes a directory.
167171
rmdir :: FilePath
168172
-> Effect Unit
173+
rmdir path = rmdir' path { maxRetries: 0, retryDelay: 100 }
174+
175+
rmdir' :: FilePath
176+
-> { maxRetries :: Int, retryDelay :: Int }
177+
-> Effect Unit
178+
rmdir' path opts = mkEffect $ \_ -> runFn2
179+
rmdirSyncImpl path opts
180+
181+
182+
rm :: FilePath
183+
-> Effect Unit
184+
rm path = rm' path { force: false, maxRetries: 100, recursive: false, retryDelay: 1000 }
185+
186+
rm' :: FilePath
187+
-> { force :: Boolean, maxRetries :: Int, recursive :: Boolean, retryDelay :: Int }
188+
-> Effect Unit
189+
rm' path opts = mkEffect $ \_ -> runFn2
190+
rmSyncImpl path opts
169191

170-
rmdir file = mkEffect $ \_ -> runFn1
171-
rmdirSyncImpl file
172192

173193
-- | Makes a new directory.
174194
mkdir :: FilePath

0 commit comments

Comments
 (0)