diff --git a/lib/empty/index.js b/lib/empty/index.js index 90fb46991..b4a2e8239 100644 --- a/lib/empty/index.js +++ b/lib/empty/index.js @@ -1,29 +1,20 @@ 'use strict' -const u = require('universalify').fromCallback -const fs = require('graceful-fs') +const u = require('universalify').fromPromise +const fs = require('../fs') const path = require('path') const mkdir = require('../mkdirs') const remove = require('../remove') -const emptyDir = u(function emptyDir (dir, callback) { - callback = callback || function () {} - fs.readdir(dir, (err, items) => { - if (err) return mkdir.mkdirs(dir, callback) - - items = items.map(item => path.join(dir, item)) - - deleteItem() +const emptyDir = u(async function emptyDir (dir) { + let items + try { + items = await fs.readdir(dir) + } catch { + return mkdir.mkdirs(dir) + } - function deleteItem () { - const item = items.pop() - if (!item) return callback() - remove.remove(item, err => { - if (err) return callback(err) - deleteItem() - }) - } - }) + return Promise.all(items.map(item => remove.remove(path.join(dir, item)))) }) function emptyDirSync (dir) {