-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcodewars.js
More file actions
46 lines (39 loc) · 962 Bytes
/
Copy pathcodewars.js
File metadata and controls
46 lines (39 loc) · 962 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const { Display } = require('./src/display');
const { Request } = require('./src/request');
const { UserStats } = require('./src/user_stats');
const app = async () => {
const username = Display.getUserInput();
const request = new Request(username);
let user;
let running = true;
try {
const data = await request.userData();
if (data == null) {
throw new Error(`No Data for User: ${username}`);
}
user = new UserStats(data);
} catch (error) {
console.error(error.message);
running = false;
}
while (running) {
Display.menu(user.name);
const choice = Display.getOption();
switch (choice) {
case 1:
Display.userStats(user);
break;
case 2: {
Display.languageStats(user.languages);
break;
}
case 3:
running = false;
console.log('Goodbye!');
break;
default:
console.log('Invalid Option');
}
}
};
app();