0
Fork 0
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:
Alex Kocharin 2013-10-22 17:33:39 +04:00
parent 3a407396b8
commit 6ae26226eb

View file

@ -61,17 +61,39 @@ Storage.prototype.add_package = function(name, metadata, callback) {
Storage.prototype.remove_package = function(name, callback) { Storage.prototype.remove_package = function(name, callback) {
var self = this var self = this
self.storage.unlink(name + '/' + info_file, function(err) { self.storage.read_json(name + '/' + info_file, function(err, data) {
if (err && err.code === 'ENOENT') { if (err) {
return callback(new UError({ if (err.code === 'ENOENT') {
status: 404, return callback(new UError({
msg: 'no such package available', 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.unlink(name + '/' + info_file, function(err) {
self.storage.rmdir(name, function(err) { if (err) return callback(err)
callback()
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()
})
})
}) })
}) })
} }