Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 04282cd

Browse files
authored
Convert emptyDir() to async function; remove items in parallel (#885)
1 parent 2fca5b2 commit 04282cd

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

lib/empty/index.js

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,20 @@
11
'use strict'
22

3-
const u = require('universalify').fromCallback
4-
const fs = require('graceful-fs')
3+
const u = require('universalify').fromPromise
4+
const fs = require('../fs')
55
const path = require('path')
66
const mkdir = require('../mkdirs')
77
const remove = require('../remove')
88

9-
const emptyDir = u(function emptyDir (dir, callback) {
10-
callback = callback || function () {}
11-
fs.readdir(dir, (err, items) => {
12-
if (err) return mkdir.mkdirs(dir, callback)
13-
14-
items = items.map(item => path.join(dir, item))
15-
16-
deleteItem()
9+
const emptyDir = u(async function emptyDir (dir) {
10+
let items
11+
try {
12+
items = await fs.readdir(dir)
13+
} catch {
14+
return mkdir.mkdirs(dir)
15+
}
1716

18-
function deleteItem () {
19-
const item = items.pop()
20-
if (!item) return callback()
21-
remove.remove(item, err => {
22-
if (err) return callback(err)
23-
deleteItem()
24-
})
25-
}
26-
})
17+
return Promise.all(items.map(item => remove.remove(path.join(dir, item))))
2718
})
2819

2920
function emptyDirSync (dir) {

0 commit comments

Comments
 (0)