index.js 747 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. 'use strict'
  2. const u = require('universalify').fromPromise
  3. const fs = require('../fs')
  4. const path = require('path')
  5. const mkdir = require('../mkdirs')
  6. const remove = require('../remove')
  7. const emptyDir = u(async function emptyDir (dir) {
  8. let items
  9. try {
  10. items = await fs.readdir(dir)
  11. } catch {
  12. return mkdir.mkdirs(dir)
  13. }
  14. return Promise.all(items.map(item => remove.remove(path.join(dir, item))))
  15. })
  16. function emptyDirSync (dir) {
  17. let items
  18. try {
  19. items = fs.readdirSync(dir)
  20. } catch {
  21. return mkdir.mkdirsSync(dir)
  22. }
  23. items.forEach(item => {
  24. item = path.join(dir, item)
  25. remove.removeSync(item)
  26. })
  27. }
  28. module.exports = {
  29. emptyDirSync,
  30. emptydirSync: emptyDirSync,
  31. emptyDir,
  32. emptydir: emptyDir
  33. }