40 lines
747 B
JavaScript
40 lines
747 B
JavaScript
'use strict'
|
|
|
|
const u = require('universalify').fromPromise
|
|
const fs = require('../fs')
|
|
const path = require('path')
|
|
const mkdir = require('../mkdirs')
|
|
const remove = require('../remove')
|
|
|
|
const emptyDir = u(async function emptyDir (dir) {
|
|
let items
|
|
try {
|
|
items = await fs.readdir(dir)
|
|
} catch {
|
|
return mkdir.mkdirs(dir)
|
|
}
|
|
|
|
return Promise.all(items.map(item => remove.remove(path.join(dir, item))))
|
|
})
|
|
|
|
function emptyDirSync (dir) {
|
|
let items
|
|
try {
|
|
items = fs.readdirSync(dir)
|
|
} catch {
|
|
return mkdir.mkdirsSync(dir)
|
|
}
|
|
|
|
items.forEach(item => {
|
|
item = path.join(dir, item)
|
|
remove.removeSync(item)
|
|
})
|
|
}
|
|
|
|
module.exports = {
|
|
emptyDirSync,
|
|
emptydirSync: emptyDirSync,
|
|
emptyDir,
|
|
emptydir: emptyDir
|
|
}
|