Skip to content

Commit 54837d9

Browse files
committed
Local CLI support covid <country>
1 parent bff452c commit 54837d9

File tree

3 files changed

+430
-14
lines changed

3 files changed

+430
-14
lines changed

cli.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/usr/bin/env node
2+
const axios = require('axios'),
3+
clear = require('clear'),
4+
ora = require('ora'),
5+
spinner = ora({ text: 'Loading...'}),
6+
covid19 = require('./lib/cli'),
7+
apiBaseURL = "https://corona.lmao.ninja",
8+
argv = require('yargs')
9+
.usage('Usage: $0 <country> [options]')
10+
.example('$0 PH', 'Generate stats for Philippines. ISO 3166-1 is supported')
11+
.nargs('plain', 0)
12+
.describe('plain', 'If your cli does not support ANSI encoding similar to /cmd usage and layout')
13+
.example('$0 PH --plain', 'Generate stats for Philippines with plain format')
14+
.help('help')
15+
.argv;
16+
17+
const getGlobal = (data) => {
18+
const params = [ data.cases, data.deaths,data.recovered, data.updated];
19+
let result;
20+
21+
if(argv.plain) {
22+
result = covid19.plainglobaltracker(...params);
23+
spinner.stop();
24+
return console.log(result);
25+
}
26+
27+
result = covid19.covid19globaltracker(...params);
28+
spinner.stop();
29+
return console.log(result);
30+
}
31+
32+
const getCountry = async (u, country) => {
33+
let result;
34+
const api = await axios.get(`${apiBaseURL}/countries/${country}`),
35+
d = api.data;
36+
37+
const params = [
38+
d.country, d.cases, d.todayCases, d.deaths, d.todayDeaths,
39+
d.recovered, d.active, d.critical, d.casesPerOneMillion,
40+
u.updated
41+
];
42+
43+
if(argv.plain) {
44+
result = covid19.plaincountrytracker(...params);
45+
spinner.stop();
46+
return console.log(result);
47+
}
48+
result = covid19.covid19countrytracker(...params);
49+
spinner.stop();
50+
return console.log(result);
51+
}
52+
53+
(async () => {
54+
clear();
55+
country = argv._[0];
56+
spinner.start();
57+
const all = await axios.get(`${apiBaseURL}/all`);
58+
!country && getGlobal(all.data);
59+
country && getCountry(all.data, country);
60+
})()

0 commit comments

Comments
 (0)