UNPKG

3.09 kBPlain TextView Raw
1import chalk = require('chalk');
2
3/**
4 * 用于标准化命令行输出的格式
5 */
6
7export const log = {
8 /**
9 * chalk库
10 */
11 chalk,
12
13 /**
14 * 格式化console.log输出
15 * [00:00:00] ...
16 *
17 */
18 l(...args: any[]) {
19 console.log(chalk.gray(`[${(new Date).toLocaleTimeString()}] `), ...args);
20 },
21
22 /**
23 * 格式化console.warn输出
24 * [00:00:00] ...
25 *
26 */
27 w(...args: any[]) {
28 console.warn(chalk.gray(`[${(new Date).toLocaleTimeString()}] `), chalk.yellow(...args));
29 },
30
31 /**
32 * 格式化console.error输出
33 * [00:00:00] ...
34 *
35 */
36 e(...args: any[]) {
37 console.error(chalk.gray(`[${(new Date).toLocaleTimeString()}] `), chalk.red(...args));
38 },
39
40 /**
41 * squareN:用方括号包裹打印输出
42 */
43 sn: {
44 /**
45 * 对前n个参数使用方括号包裹,并使用log.l输出
46 *
47 * @param {number} n 对前n个参数使用方括号包裹
48 * @param {...any[]} args
49 */
50 l(n: number, ...args: any[]) {
51 log.l(this.format(n, ...args));
52 },
53
54 /**
55 * 对前n个参数使用方括号包裹,并使用log.w输出
56 *
57 * @param {number} n 对前n个参数使用方括号包裹
58 * @param {...any[]} args
59 */
60 w(n: number, ...args: any[]) {
61 log.w(this.format(n, ...args));
62 },
63
64 /**
65 * 对前n个参数使用方括号包裹,并使用log.e输出
66 *
67 * @param {number} n 对前n个参数使用方括号包裹
68 * @param {...any[]} args
69 */
70 e(n: number, ...args: any[]) {
71 log.e(this.format(n, ...args));
72 },
73
74 /**
75 * 对前n个参数使用方括号包裹,并返回格式化后的结果
76 *
77 * @param {number} n 对前n个参数使用方括号包裹
78 * @param {...any[]} args
79 * @returns {string}
80 */
81 format(n: number, ...args: any[]): string {
82 for (var index = 0; index < n; index++) {
83 args[index] = `[${args[index]}]`;
84 }
85 return args.join(' ');
86 }
87 },
88
89 /**
90 * square1:简化sn的使用,对第一个参数使用方括号包裹输出
91 */
92 s1: {
93 l(...args: any[]) {
94 log.sn.l(1, ...args);
95 },
96
97 w(...args: any[]) {
98 log.sn.w(1, ...args);
99 },
100
101 e(...args: any[]) {
102 log.sn.e(1, ...args);
103 },
104 format(...args: any[]) {
105 return log.sn.format(1, ...args);
106 }
107 },
108
109 /**
110 * square2:简化sn的使用,对前两个参数使用方括号包裹输出
111 */
112 s2: {
113 l(...args: any[]) {
114 log.sn.l(2, ...args);
115 },
116
117 w(...args: any[]) {
118 log.sn.w(2, ...args);
119 },
120
121 e(...args: any[]) {
122 log.sn.e(2, ...args);
123 },
124 format(...args: any[]) {
125 return log.sn.format(2, ...args);
126 }
127 }
128};
\No newline at end of file