Files
revanced-bots/packages/shared/src/utils/logger.ts
PalmDevs b3b7723b4f feat!: big feature changes
BREAKING CHANGES:
- Heartbeating removed
- `config.consoleLogLevel` -> `config.logLevel`

NEW FEATURES:
- Training messages
- Sequence number system
- WebSocket close codes used instead of disconnect packets

FIXES:
- Improved error handling
- Some performance improvements
- Made code more clean
- Updated dependencies
2024-06-24 18:23:27 +07:00

39 lines
1.5 KiB
TypeScript

import { Chalk, supportsColor, supportsColorStderr } from 'chalk'
import { type Tracer, colorConsole, console as uncoloredConsole } from 'tracer'
const chalk = new Chalk()
const DefaultConfig = {
dateformat: 'dd/mm/yyyy HH:mm:ss.sss Z',
format: [
'{{message}}',
{
error: `${chalk.bgRedBright.whiteBright(' ERROR ')} {{message}}\n${chalk.gray('{{stack}}')}`,
debug: chalk.gray('DEBUG: {{message}}'),
warn: `${chalk.bgYellowBright.whiteBright(' WARN ')} ${chalk.yellowBright('{{message}}')}`,
info: `${chalk.bgBlueBright.whiteBright(' INFO ')} ${chalk.cyanBright('{{message}}')}`,
fatal: `${chalk.bgRedBright.whiteBright(' FATAL ')} ${chalk.redBright('{{message}}')}\n${chalk.white(
'{{stack}}',
)}`,
log: '{{message}}',
},
],
methods: ['debug', 'log', 'info', 'warn', 'error', 'fatal'],
filters: [],
} satisfies Tracer.LoggerConfig
export function createLogger(config?: Omit<Tracer.LoggerConfig, keyof typeof DefaultConfig>) {
const combinedConfig = { ...DefaultConfig, ...config }
if (
// biome-ignore lint/complexity/useOptionalChain: No Biome, this isn't a nullable check
supportsColor &&
supportsColor.hasBasic &&
supportsColorStderr &&
supportsColorStderr.hasBasic
)
return colorConsole(combinedConfig)
return uncoloredConsole(combinedConfig)
}
export type Logger = ReturnType<typeof createLogger>