blob: 24e5b5833ff7ddcd9a8d06995f9e25cb1d2fc45a (
plain)
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
|
import { Countries } from "./countries.ts";
import { Logger } from "./util/logger.ts";
export class App {
constructor(private logger: Logger, private countries: Countries) {}
async run(): Promise<void> {
const [command, ...args] = Deno.args;
await this.countries.sync();
switch (command) {
case undefined:
this.logger.help();
break;
case "help":
this.logger.help();
break;
case "sync":
await this.countries.sync({
force: true,
flagAscii: args[0] === "flags",
});
break;
case "random":
this.countries.print(this.countries.random());
break;
case "capital":
this.countries.capitalOf(args.join(" "));
break;
case "raw":
this.logger.log(this.countries.find(args[0]));
break;
default:
this.countries.print(Deno.args.join(" "));
break;
}
}
}
|