UNPKG

1.93 kBJavaScriptView Raw
1
2const chalk = require('chalk');
3const cl = require('chalkline');
4const Table = require('cli-table');
5const pkgInfo = require('../package.json');
6
7const CLI_ICON_FAIL = '✘';
8const CLI_ICON_PASS = '✓';
9const CLI_ICON_WARN = '♺';
10const CLI_ICON_NOTE = '✏︎';
11
12const messenger = {
13 version: () => {
14 return pkgInfo.version;
15 },
16 name: () => {
17 return pkgInfo.name;
18 },
19 log: (...params) => {
20 console.log(...params);
21 return params;
22 },
23 info: (...params) => {
24 console.log(chalk.cyan.bold(CLI_ICON_NOTE, ...params));
25 return params;
26 },
27 note: (msg, ...params) => {
28 // console.log(chalk.keyword('orange')(msg, ...params));
29 console.log(msg, ...params);
30 return params;
31 },
32 success: (...params) => {
33 console.log(chalk.green.bold(CLI_ICON_PASS, ...params));
34 return params;
35 },
36 warning: (...params) => {
37 console.log(chalk.yellow.bold(CLI_ICON_WARN, ...params));
38 return params;
39 },
40 error: (...params) => {
41 console.log(chalk.red.bold(CLI_ICON_FAIL, ...params));
42 return params;
43 },
44 table: (data) => {
45 let table;
46 let head = [];
47 if (data.length > 0) {
48 if (Array.isArray(data[0])) {
49 header = data[0];
50 data.splice(0,1);
51 }
52 else {
53 header = Object.keys(data[0]);
54 }
55 header = header.map(function (item){
56 return chalk.cyan.bold(item);
57 });
58 table = new Table({head: header});
59
60 data.map((item) => {
61 let values = Object.keys(item).map(key => item[key]);
62 table.push(values);
63 });
64 console.log(table.toString());
65 }
66 },
67 line: (color) => {
68 if (color.length > 0) {
69 try {
70 eval(`cl.${color}()`); // eslint-disable-line
71 }
72 catch (e) {
73 console.error(chalk.bgRed.bold(`Invalid Color: ${color}`));
74 }
75 }
76 },
77 dir: (data) => {
78 console.dir(data);
79 return data;
80 }
81};
82
83module.exports = messenger;