mirror of
https://github.com/verdaccio/verdaccio.git
synced 2025-02-17 23:45:29 -05:00
removing all tarballs on unpublish --force
This commit is contained in:
parent
3a407396b8
commit
6ae26226eb
1 changed files with 31 additions and 9 deletions
|
@ -61,17 +61,39 @@ Storage.prototype.add_package = function(name, metadata, callback) {
|
|||
|
||||
Storage.prototype.remove_package = function(name, callback) {
|
||||
var self = this
|
||||
self.storage.unlink(name + '/' + info_file, function(err) {
|
||||
if (err && err.code === 'ENOENT') {
|
||||
return callback(new UError({
|
||||
status: 404,
|
||||
msg: 'no such package available',
|
||||
}))
|
||||
self.storage.read_json(name + '/' + info_file, function(err, data) {
|
||||
if (err) {
|
||||
if (err.code === 'ENOENT') {
|
||||
return callback(new UError({
|
||||
status: 404,
|
||||
msg: 'no such package available',
|
||||
}))
|
||||
} else {
|
||||
return callback(err)
|
||||
}
|
||||
}
|
||||
self._normalize_package(data)
|
||||
|
||||
// try to unlink the directory, but ignore errors because it can fail
|
||||
self.storage.rmdir(name, function(err) {
|
||||
callback()
|
||||
self.storage.unlink(name + '/' + info_file, function(err) {
|
||||
if (err) return callback(err)
|
||||
|
||||
var files = Object.keys(data._attachments)
|
||||
|
||||
function unlinkNext(cb) {
|
||||
if (files.length === 0) return cb()
|
||||
|
||||
var file = files.shift()
|
||||
self.storage.unlink(name + '/' + file, function() {
|
||||
unlinkNext(cb)
|
||||
})
|
||||
}
|
||||
|
||||
unlinkNext(function() {
|
||||
// try to unlink the directory, but ignore errors because it can fail
|
||||
self.storage.rmdir(name, function(err) {
|
||||
callback()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue