summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/npm-registry-client/lib/deprecate.js
blob: 9cbc6d88e3aa559a066b739def1871b7de1dbb47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

module.exports = deprecate

var semver = require("semver")

function deprecate (name, ver, message, cb) {
  if (!this.conf.get('username')) {
    return cb(new Error("Must be logged in to deprecate a package"))
  }

  if (semver.validRange(ver) === null) {
    return cb(new Error("invalid version range: "+ver))
  }

  this.get(name + '?write=true', 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, ver)
    }).forEach(function (v) {
      data.versions[v].deprecated = message
    })
    // now update the doc on the registry
    this.request('PUT', data._id, data, cb)
  }.bind(this))
}