UNPKG

1.6 kBJavaScriptView Raw
1const {
2 isObjectLike,
3} = require('lodash');
4
5const {
6 success,
7 warning,
8 fail,
9} = require('./icons');
10
11const {
12 red,
13 yellow,
14 cyan,
15} = require('./colorStr');
16
17const {
18 jsonStringify,
19} = require('./jsonOp');
20
21/**
22 * console.log 的代理
23 */
24function log(str) {
25 if (isObjectLike(str)) {
26 str = jsonStringify(str);
27 }
28 console.log(str ? ` ${str}` : '');
29}
30
31/**
32 * 在前面空出一行
33 */
34function logBefore(str) {
35 log();
36 log(str);
37}
38
39/**
40 * 在前后都空出一行
41 */
42function logBoth(str) {
43 log();
44 log(str);
45 log();
46}
47
48/**
49 * 在后面空出一行
50 */
51function logAfter(str) {
52 log(str);
53 log();
54}
55
56module.exports = {
57 log,
58 logBefore,
59 logBoth,
60 logAfter,
61
62 /**
63 * 清空输出
64 */
65 clearlog: () => process.stdout.write('\u001b[2J\u001b[0;0H'),
66
67 /**
68 * 成功的 log
69 */
70 successlog: str => log(cyan(`${success} ${str}`)),
71 successlogBefore: str => logBefore(cyan(`${success} ${str}`)),
72 successlogAfter: str => logAfter(cyan(`${success} ${str}`)),
73 successlogBoth: str => logBoth(cyan(`${success} ${str}`)),
74
75 /**
76 * 警示的 log
77 */
78 warninglog: str => log(yellow(`${warning} ${str}`)),
79 warninglogBefore: str => logBefore(yellow(`${warning} ${str}`)),
80 warninglogAfter: str => logAfter(yellow(`${warning} ${str}`)),
81 warninglogBoth: str => logBoth(yellow(`${warning} ${str}`)),
82
83 /**
84 * 失败的 log
85 */
86 faillog: str => log(red(`${fail} ${str}`)),
87 faillogBefore: str => logBefore(red(`${fail} ${str}`)),
88 faillogAfter: str => logAfter(red(`${fail} ${str}`)),
89 faillogBoth: str => logBoth(red(`${fail} ${str}`)),
90};