index.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const https = require('https');
  2. const debug = require('debug')('pm2:version-check')
  3. const qs = require('querystring')
  4. var VersionCheck = {}
  5. VersionCheck.runCheck = function(params, cb) {
  6. var path = null
  7. if (cb == null && typeof(params) == 'function') {
  8. cb = params
  9. path = '/check'
  10. } else {
  11. path = '/check?' + qs.stringify(params)
  12. }
  13. var options = {
  14. host: 'version.pm2.io',
  15. path: path,
  16. strictSSL: false,
  17. timeout: 1200,
  18. rejectUnauthorized: false
  19. }
  20. var req = https.get(options, function(res) {
  21. if (res.statusCode != 200) return false
  22. var bodyChunks = []
  23. res.on('data', function(chunk) {
  24. bodyChunks.push(chunk)
  25. }).on('end', function() {
  26. var body = Buffer.concat(bodyChunks)
  27. try {
  28. var data = JSON.parse(body)
  29. return cb ? cb(null, data) : null
  30. } catch(e) {
  31. return cb ? cb(new Error('Could not parse result')) : null
  32. }
  33. })
  34. })
  35. req.on('error', function(e) {
  36. debug('ERROR: ' + e.message)
  37. return cb ? cb(e) : null
  38. })
  39. }
  40. module.exports = VersionCheck
  41. if (require.main === module) {
  42. VersionCheck.runCheck((err, dt) => {
  43. console.log(err, dt)
  44. })
  45. }