forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			49 lines
		
	
	
		
			983 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			983 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								'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
							 | 
						||
| 
								 | 
							
								}
							 |