index.js 967 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. callback = callback || function () {}
  7. fs.readdir(dir, function (err, items) {
  8. if (err) return mkdir.mkdirs(dir, callback)
  9. items = items.map(function (item) {
  10. return path.join(dir, item)
  11. })
  12. deleteItem()
  13. function deleteItem () {
  14. var item = items.pop()
  15. if (!item) return callback()
  16. remove.remove(item, function (err) {
  17. if (err) return callback(err)
  18. deleteItem()
  19. })
  20. }
  21. })
  22. }
  23. function emptyDirSync (dir) {
  24. var items
  25. try {
  26. items = fs.readdirSync(dir)
  27. } catch (err) {
  28. return mkdir.mkdirsSync(dir)
  29. }
  30. items.forEach(function (item) {
  31. item = path.join(dir, item)
  32. remove.removeSync(item)
  33. })
  34. }
  35. module.exports = {
  36. emptyDirSync: emptyDirSync,
  37. emptydirSync: emptyDirSync,
  38. emptyDir: emptyDir,
  39. emptydir: emptyDir
  40. }