unregister.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. var parseUrl = require('url').parse;
  2. var request = require('request');
  3. var createError = require('./util/createError');
  4. function unregister(name, callback) {
  5. var config = this._config;
  6. var requestUrl = config.registry.register + '/packages/' + name;
  7. var remote = parseUrl(requestUrl);
  8. var headers = {};
  9. if (config.userAgent) {
  10. headers['User-Agent'] = config.userAgent;
  11. }
  12. if (config.accessToken) {
  13. requestUrl += '?access_token=' + config.accessToken;
  14. }
  15. request.del({
  16. url: requestUrl,
  17. proxy: remote.protocol === 'https:' ? config.httpsProxy : config.proxy,
  18. headers: headers,
  19. ca: config.ca.register,
  20. strictSSL: config.strictSsl,
  21. timeout: config.timeout
  22. }, function (err, response) {
  23. // If there was an internal error (e.g. timeout)
  24. if (err) {
  25. return callback(createError('Request to ' + requestUrl + ' failed: ' + err.message, err.code));
  26. }
  27. // Forbidden
  28. if (response.statusCode === 403) {
  29. return callback(createError(response.body, 'EFORBIDDEN'));
  30. }
  31. // Everything other than 204 is unknown
  32. if (response.statusCode !== 204) {
  33. return callback(createError(response.body, 'EUNKNOWN'));
  34. }
  35. callback(null, {
  36. name: name
  37. });
  38. });
  39. }
  40. module.exports = unregister;