CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
asset.js45 linesDownload Raw Back to prebuild-install
1const get = require('simple-get')2const util = require('./util')3const proxy = require('./proxy')4 5function findAssetId (opts, cb) {6  const downloadUrl = util.getDownloadUrl(opts)7  const apiUrl = util.getApiUrl(opts)8  const log = opts.log || util.noopLogger9 10  log.http('request', 'GET ' + apiUrl)11  const reqOpts = proxy({12    url: apiUrl,13    json: true,14    headers: {15      'User-Agent': 'simple-get',16      Authorization: 'token ' + opts.token17    }18  }, opts)19 20  const req = get.concat(reqOpts, function (err, res, data) {21    if (err) return cb(err)22    log.http(res.statusCode, apiUrl)23    if (res.statusCode !== 200) return cb(err)24 25    // Find asset id in release26    for (const release of data) {27      if (release.tag_name === opts['tag-prefix'] + opts.pkg.version) {28        for (const asset of release.assets) {29          if (asset.browser_download_url === downloadUrl) {30            return cb(null, asset.id)31          }32        }33      }34    }35 36    cb(new Error('Could not find GitHub release for version'))37  })38 39  req.setTimeout(30 * 1000, function () {40    req.abort()41  })42}43 44module.exports = findAssetId45