aboutsummaryrefslogtreecommitdiff
path: root/node_modules/fs-extra/lib/empty/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/fs-extra/lib/empty/index.js')
-rw-r--r--node_modules/fs-extra/lib/empty/index.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/node_modules/fs-extra/lib/empty/index.js b/node_modules/fs-extra/lib/empty/index.js
new file mode 100644
index 0000000..db05c17
--- /dev/null
+++ b/node_modules/fs-extra/lib/empty/index.js
@@ -0,0 +1,48 @@
+'use strict'
+
+const u = require('universalify').fromCallback
+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()
+
+ function deleteItem () {
+ const item = items.pop()
+ if (!item) return callback()
+ remove.remove(item, err => {
+ if (err) return callback(err)
+ deleteItem()
+ })
+ }
+ })
+})
+
+function emptyDirSync (dir) {
+ let items
+ try {
+ items = fs.readdirSync(dir)
+ } catch (err) {
+ return mkdir.mkdirsSync(dir)
+ }
+
+ items.forEach(item => {
+ item = path.join(dir, item)
+ remove.removeSync(item)
+ })
+}
+
+module.exports = {
+ emptyDirSync,
+ emptydirSync: emptyDirSync,
+ emptyDir,
+ emptydir: emptyDir
+}