make sure "remove" return a promise

pull/262/head
yann300 4 years ago
parent 33622dde00
commit 7230f0b822
  1. 52
      src/app/files/fileProvider.js
  2. 5
      src/app/files/remixDProvider.js

@ -157,35 +157,37 @@ class FileProvider {
* @param {*} path is the folder to be removed
*/
remove (path) {
path = this.removePrefix(path)
if (window.remixFileSystem.existsSync(path)) {
const stat = window.remixFileSystem.statSync(path)
try {
if (!stat.isDirectory()) {
return this.removeFile(path)
} else {
const items = window.remixFileSystem.readdirSync(path)
if (items.length !== 0) {
items.forEach((item, index) => {
const curPath = `${path}/${item}`
if (window.remixFileSystem.statSync(curPath).isDirectory()) { // delete folder
this.remove(curPath)
} else { // delete file
this.removeFile(curPath)
}
})
if (window.remixFileSystem.readdirSync(path).length === 0) window.remixFileSystem.rmdirSync(path, console.log)
return new Promise((resolve, reject) => {
path = this.removePrefix(path)
if (window.remixFileSystem.existsSync(path)) {
const stat = window.remixFileSystem.statSync(path)
try {
if (!stat.isDirectory()) {
resolve(this.removeFile(path))
} else {
// folder is empty
window.remixFileSystem.rmdirSync(path, console.log)
const items = window.remixFileSystem.readdirSync(path)
if (items.length !== 0) {
items.forEach((item, index) => {
const curPath = `${path}/${item}`
if (window.remixFileSystem.statSync(curPath).isDirectory()) { // delete folder
this.remove(curPath)
} else { // delete file
this.removeFile(curPath)
}
})
if (window.remixFileSystem.readdirSync(path).length === 0) window.remixFileSystem.rmdirSync(path, console.log)
} else {
// folder is empty
window.remixFileSystem.rmdirSync(path, console.log)
}
}
} catch (e) {
console.log(e)
return resolve(false)
}
} catch (e) {
console.log(e)
return false
}
}
return true
return resolve(true)
})
}
removeFile (path) {

@ -130,19 +130,22 @@ module.exports = class RemixDProvider {
}
remove (path) {
return new Promise((resolve, reject) => {
const unprefixedpath = this.removePrefix(path)
this._appManager.call('remixd', 'remove', { path: unprefixedpath })
.then(result => {
console.log('result: ', result)
const path = this.type + '/' + unprefixedpath
delete this.filesContent[path]
resolve(true)
this.init(() => {
this.event.trigger('fileRemoved', [path])
})
}).catch(error => {
if (error) console.log(error)
resolve(false)
})
})
}

Loading…
Cancel
Save