-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlog.ts
More file actions
42 lines (36 loc) · 1.04 KB
/
log.ts
File metadata and controls
42 lines (36 loc) · 1.04 KB
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
import verba, { Outlet, OutletFilter, consoleTransport, fileTransport } from '../../src'
import { Code } from './codes'
import stringify from 'safe-stable-stringify'
type LogMessageData = { verbose: boolean }
const excludeLargeTables: OutletFilter = options => (
options.outlet !== Outlet.TABLE || options.data?.length < 10
)
const removeVerboseLogs: OutletFilter<Code, LogMessageData> = options => (
!options.options.data?.verbose
)
const log = verba<Code, LogMessageData>({
outletFilters: [
excludeLargeTables,
removeVerboseLogs,
],
transports: [
consoleTransport({
outletPrefixes: 'textual-muted',
deltaT: true,
timePrefix: 'MMM dd hh:ii:ss (tz)',
dataRenderer: data => stringify(data, null, 2) ?? '',
prefix: { text: 'verba-api | ', formats: ['blue'] },
}),
fileTransport({
batchOptions: {
interval: 2000,
},
}),
],
}).setAliases({
header: logger => (s: string) => {
logger.log(f => f.bold(f.italic(`-- ${s} --`)))
logger.spacer()
},
})
export default log