UNPKG

2.49 kBPlain TextView Raw
1#!/usr/bin/env node
2
3const Idea = require("../lib")
4 , logger = require("bug-killer")
5 , Table = require("le-table")
6 , couleurs = require("couleurs")
7 , ansiParser = require("ansi-parser")
8 , Daty = require("daty")
9 ;
10
11// Defaults
12Table.defaults.marks = {
13 nw: "┌"
14 , n: "─"
15 , ne: "┐"
16 , e: "│"
17 , se: "┘"
18 , s: "─"
19 , sw: "└"
20 , w: "│"
21 , b: " "
22 , mt: "┬"
23 , ml: "├"
24 , mr: "┤"
25 , mb: "┴"
26 , mm: "┼"
27};
28
29function display(arr) {
30 if (!arr.length) {
31 return logger.log("No ideas fetched.", "info");
32 }
33 var tbl = new Table()
34 , i = 0
35 , c = 0
36 ;
37
38 tbl.addRow([
39 couleurs("Id").bold()
40 , couleurs("Date").bold()
41 , couleurs("State").bold()
42 , couleurs("Idea").bold()
43 ]);
44
45 for (; i < arr.length; ++i) {
46 c = arr[i];
47 c.date = new Daty(c.date).format("dddd, MM/DD/YYYY");
48 tbl.addRow([c.id + 1, c.date, c.state, c.idea]);
49 }
50
51 console.log(ansiParser.removeAnsi(tbl.toString()));
52}
53
54var idea = new Idea(err => {
55 if (err) { return logger.log(err, "error"); }
56 var commands = {
57 create: callback => {
58 idea.create(process.argv[3], err => {
59 if (err) { return callback(err); }
60 callback("Idea was added.");
61 });
62 idea.save();
63 }
64 , list: callback => {
65 idea.filter({}, callback);
66 }
67 , filter: callback => {
68 try {
69 var filter = JSON.parse(process.argv[3] || "{ \"state\": \"OPEN\" }");
70 } catch (e) {
71 return callback("Cannot parse the filter.", "error");
72 }
73 idea.filter(filter, callback);
74 }
75 , solve: callback => {
76 idea.solve(process.argv[3], () => {
77 if (err) { return callback(err); }
78 callback("Idea was solved.");
79 });
80 idea.save();
81 }
82 , help: () => {
83 console.log(require("./docs/help"));
84 }
85 };
86
87 if (~process.argv.indexOf("-h") || ~process.argv.indexOf("--help")) {
88 return commands.help();
89 }
90
91 if (!commands[process.argv[2]]) {
92 process.argv[2] = "filter";
93 }
94
95 commands[process.argv[2]]((err, res) => {
96 if (err) {
97 return logger.log(err, "error");
98 }
99
100 if (typeof res === "string") {
101 return logger.log(res, "info");
102 }
103
104 display(res);
105 });
106});