You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							992 B
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							992 B
						
					
					
				| 'use strict'
 | |
| 
 | |
| const u = require('universalify').fromCallback
 | |
| const fs = require('graceful-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
 | |
| }
 |