UNPKG

1.54 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.10.0
2(function() {
3 var bluebird, info, request;
4
5 bluebird = require('bluebird');
6
7 request = require('sync-request');
8
9 request = bluebird.promisifyAll(request);
10
11 info = function(opts) {
12 var access_token_url, autocode, headers, module, name, repo_url, resp;
13 autocode = this;
14 if (typeof opts === 'object') {
15 if (opts._ && opts._[1]) {
16 name = opts._[1];
17 } else if (opts.name) {
18 name = opts.name;
19 }
20 } else if (typeof name === 'string') {
21 name = opts;
22 }
23 if (!name) {
24 throw new Error("'name' is required for autocode search");
25 }
26 headers = {
27 'User-Agent': 'Autocode <support@autocode.run> (https://autocode.run/autocode)'
28 };
29 access_token_url = '';
30 if (process.env.GITHUB_ACCESS_TOKEN) {
31 access_token_url += "?access_token=" + process.env.GITHUB_ACCESS_TOKEN;
32 }
33 console.log(("Getting info for " + name + "...").blue);
34 repo_url = "https://api.github.com/repos/" + name + "/releases/latest" + access_token_url;
35 resp = request('get', repo_url, {
36 headers: headers,
37 allowRedirectHeaders: ['User-Agent']
38 });
39 if (resp.statusCode !== 200) {
40 if (resp.statusCode === 404) {
41 throw new Error("Module does not exist: " + name);
42 } else {
43 throw new Error('Unable to get info.');
44 }
45 }
46 module = JSON.parse(resp.body);
47 return console.log("Latest Version: ".bold + module.tag_name.substr(1));
48 };
49
50 module.exports = info;
51
52}).call(this);