1 |
|
2 | import npmLog from 'npmlog';
|
3 | import prettyTime from 'pretty-hrtime';
|
4 | import chalk from 'chalk';
|
5 | export var colors = {
|
6 | pink: chalk.hex('F1618C'),
|
7 | purple: chalk.hex('B57EE5'),
|
8 | orange: chalk.hex('F3AD38'),
|
9 | green: chalk.hex('A2E05E'),
|
10 | blue: chalk.hex('6DABF5'),
|
11 | red: chalk.hex('F16161'),
|
12 | gray: chalk.gray
|
13 | };
|
14 | export var logger = {
|
15 | verbose: function (message) {
|
16 | return npmLog.verbose('', message);
|
17 | },
|
18 | info: function (message) {
|
19 | return npmLog.info('', message);
|
20 | },
|
21 | plain: function (message) {
|
22 | return console.log(message);
|
23 | },
|
24 | line: function (count = 1) {
|
25 | return console.log(`${Array(count - 1).fill('\n')}`);
|
26 | },
|
27 | warn: function (message) {
|
28 | return npmLog.warn('', message);
|
29 | },
|
30 | error: function (message) {
|
31 | return npmLog.error('', message);
|
32 | },
|
33 | trace: function ({
|
34 | message: message,
|
35 | time: time
|
36 | }) {
|
37 | return npmLog.info('', `${message} (${colors.purple(prettyTime(time))})`);
|
38 | },
|
39 | setLevel: function (level = 'info') {
|
40 | npmLog.level = level;
|
41 | }
|
42 | };
|
43 | export { npmLog as instance };
|
44 | var logged = new Set();
|
45 | export var once = function (type) {
|
46 | return function (message) {
|
47 | if (logged.has(message)) return undefined;
|
48 | logged.add(message);
|
49 | return logger[type](message);
|
50 | };
|
51 | };
|
52 |
|
53 | once.clear = function () {
|
54 | return logged.clear();
|
55 | };
|
56 |
|
57 | once.verbose = once('verbose');
|
58 | once.info = once('info');
|
59 | once.warn = once('warn');
|
60 | once.error = once('error'); |
\ | No newline at end of file |