trouble-in-terror-town/node_modules/another-npm-registry-client/lib/deprecate.js
Mikolaj 2bbacbea09 did some more work on networking and removed EOS in favor of LRM
did some more work on networking and removed EOS in favor of Light Reflective Mirror
2022-05-31 15:04:31 +02:00

42 lines
1.3 KiB
JavaScript

module.exports = deprecate
var assert = require('assert')
var semver = require('semver')
function deprecate (uri, params, cb) {
assert(typeof uri === 'string', 'must pass registry URI to deprecate')
assert(params && typeof params === 'object', 'must pass params to deprecate')
assert(typeof cb === 'function', 'must pass callback to deprecate')
assert(typeof params.version === 'string', 'must pass version to deprecate')
assert(typeof params.message === 'string', 'must pass message to deprecate')
assert(
params.auth && typeof params.auth === 'object',
'must pass auth to deprecate'
)
var version = params.version
var message = params.message
var auth = params.auth
if (semver.validRange(version) === null) {
return cb(new Error('invalid version range: ' + version))
}
this.get(uri + '?write=true', { auth: auth }, function (er, data) {
if (er) return cb(er)
// filter all the versions that match
Object.keys(data.versions).filter(function (v) {
return semver.satisfies(v, version)
}).forEach(function (v) {
data.versions[v].deprecated = message
})
// now update the doc on the registry
var options = {
method: 'PUT',
body: data,
auth: auth
}
this.request(uri, options, cb)
}.bind(this))
}