-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils.ts
93 lines (82 loc) · 4.01 KB
/
utils.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
export const printHonestJohn = () => {
console.log(`
████████████████████████████████████████
▒░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒██▒░░░░░░░░▒▓██████
▒░░░░░░░░░░░░░░░░░░░░▓▓░░░░░░░░░░░░▒████
▓░░░░░░▒▒▒▒▒▒▒▒░░░░░░░▒▒░░░░░░░░░░░░░███
▒░░░░░░▒▓▓▓▓▓█▓░░░░░░▓▒░░░░░░░░░░░░░▒▒▒▓
█░░░░░░░░░░░▒█▓░▒▓█▒░▓░░░░░░░░░░░▒▓▓▒░░░
▒░░░░░░░░░░░▒█▓▒▒█▓▓▒░░░░░░░▒▒▒▒▓███████
░░░░░░░░░░░░░██▓███▒░░░░░░░░░░░░▒▓▓▓▓███
░░░░░░░░░░▒▒██▒▒░░████▓▓▓████████▓▓░░▒▒▒
░░░░░░░▓▓███▓▒▒▒▓█▓▓▒░░░░▓████▓▒▒▒▒░░░░░
▒░░░░░▒▒▒▒▒░▒▒▒▒░░░░░▒░░░▒████▒▒▒░░░░░░░
▒░░░░░▓█░░░░░░░░░▒░░░░░▒▓█████▒░░░░░░░░░
▒░░░░░░▓█▓▒▒▒░░░░░░░░░▒███████▓░░░░░░░░░
█░░░░░░░░▒▓██▓▒▒░░░░░░░███████▒░░░░░░░░░
▓▒▒▒▒▒▓░░▒▓▒▒░░░░▒█▓▓▓███████▓░░░░░▒░░░░
▓▓▓▓▓▓▓▓▒▒▒▒▒░░░░▒▒▒▓██████▓▒░░░░░▒░░░░░
█▓▓▓▓▓▓▓███████▒▒▒▓▓▓▓▓█▓▓▒░░░░░░░▒░░░░░
▓▓▓▓▓▓▓████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░▒░░░░▒
### ##
## ##
## #### ##### #### ##### #####
##### ## ## ## ## ## ## ## ##
## ## ## ## ## ## ###### ##### ##
## ## ## ## ## ## ## ## ## ##
### ## #### ## ## ##### ###### ###
## ###
##
### #### ## #####
## ## ## ##### ## ##
## ## ## ## ## ## ##
## ## ## ## ## ## ## ##
## ## #### ### ## ## ##
####
`);
};
import { type DestinationStream, type Logger, pino } from "pino";
import { build } from "pino-pretty";
const BASE_OPTIONS = {
colorize: true,
colorizeObjects: true,
sync: true,
} as const;
const prettyStream = build({
...BASE_OPTIONS,
ignore: "hostname,pid,time",
});
const prettyStreamWithTimestamp = build({
...BASE_OPTIONS,
ignore: "hostname,pid",
});
let fatalLoggerInstalled = false;
function ensureFatalLogger(logger: Logger<never>) {
if (fatalLoggerInstalled) {
return;
}
fatalLoggerInstalled = true;
process.on("uncaughtException", (err) => {
logger.fatal(err);
process.exit(1);
});
}
function createLoggerWithName(name: string, stream: DestinationStream) {
return pino(
{
level: "debug",
name,
},
stream,
);
}
export function createLogger(name: string) {
const logger = createLoggerWithName(name, prettyStream);
ensureFatalLogger(logger);
return logger;
}
export function createLoggerWithTimestamp(name: string) {
const logger = createLoggerWithName(name, prettyStreamWithTimestamp);
ensureFatalLogger(logger);
return logger;
}