index.js 927 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var fs = require('fs')
  2. var path = require('path')
  3. var mkdir = require('../mkdirs')
  4. var remove = require('../remove')
  5. function emptyDir (dir, callback) {
  6. fs.readdir(dir, function (err, items) {
  7. if (err) return mkdir.mkdirs(dir, callback)
  8. items = items.map(function (item) {
  9. return path.join(dir, item)
  10. })
  11. deleteItem()
  12. function deleteItem () {
  13. var item = items.pop()
  14. if (!item) return callback()
  15. remove.remove(item, function (err) {
  16. if (err) return callback(err)
  17. deleteItem()
  18. })
  19. }
  20. })
  21. }
  22. function emptyDirSync (dir) {
  23. var items
  24. try {
  25. items = fs.readdirSync(dir)
  26. } catch (err) {
  27. return mkdir.mkdirsSync(dir)
  28. }
  29. items.forEach(function (item) {
  30. item = path.join(dir, item)
  31. remove.removeSync(item)
  32. })
  33. }
  34. module.exports = {
  35. emptyDirSync: emptyDirSync,
  36. emptydirSync: emptyDirSync,
  37. emptyDir: emptyDir,
  38. emptydir: emptyDir
  39. }