UNPKG

1.45 kBJavaScriptView Raw
1/* eslint-disable no-console */
2import npmLog from 'npmlog';
3import prettyTime from 'pretty-hrtime';
4import chalk from 'chalk';
5export 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};
14export 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};
43export { npmLog as instance };
44var logged = new Set();
45export 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
53once.clear = function () {
54 return logged.clear();
55};
56
57once.verbose = once('verbose');
58once.info = once('info');
59once.warn = once('warn');
60once.error = once('error');
\No newline at end of file