qiu8310/serpent

View on GitHub
projects/serpent-common-cli/src/npm/test.js

Summary

Maintainability
A
1 hr
Test Coverage
const https = require('https')
const http = require('http')

function fetch(url) {
  return new Promise((resolve, reject) => {
    const isHTTPS = url.startsWith('https:')
    let client
    if (isHTTPS) {
      client = https.get(url, fetchCallback)
    } else {
      client = http.get(url, fetchCallback)
    }
    client.on('error', e => {
      reject(e)
    })
    function fetchCallback(res) {
      let _data = ''
      let status = res.statusCode
      let message = res.statusMessage
      console.log(message)

      res.on('close', e => {
        res.removeAllListeners()
        let data
        if (_data) {
          try {
            data = JSON.parse(_data)
          } catch (e) {
            data = _data
          }
        }
        resolve({ data, status })
      })
      res.on('data', chunk => {
        if (typeof chunk === 'string') _data += chunk
        if (Buffer.isBuffer(chunk)) _data += chunk.toString()
      })
    }
  })
}
fetch('https://registry.npmmirror.com/mora-common').then(d => {
  console.log(d.data)
})