mirror of
https://github.com/Lifeforge-app/lifeforge.git
synced 2026-03-03 02:37:02 +00:00
44 lines
933 B
TypeScript
44 lines
933 B
TypeScript
import chalk from 'chalk'
|
|
|
|
import { LogLevel } from '@/utils/config'
|
|
|
|
import { type Logger, createLogger } from './logger'
|
|
|
|
export interface CLILogger extends Logger {
|
|
success(message: string): void
|
|
print(message: string): void
|
|
}
|
|
|
|
function wrapWithCLIMethods(logger: Logger): CLILogger {
|
|
return {
|
|
...logger,
|
|
get level(): LogLevel {
|
|
return logger.level
|
|
},
|
|
setLevel(level: LogLevel) {
|
|
logger.setLevel(level)
|
|
},
|
|
success(message: string) {
|
|
logger.info(`${chalk.green('✔')} ${message}`)
|
|
},
|
|
print(message: string) {
|
|
logger.info(message)
|
|
},
|
|
|
|
child(bindings: object): CLILogger {
|
|
return wrapWithCLIMethods(logger.child(bindings))
|
|
}
|
|
}
|
|
}
|
|
|
|
export function createCLILogger(name = 'CLI', level?: LogLevel): CLILogger {
|
|
const logger = createLogger({
|
|
name,
|
|
pretty: true,
|
|
file: { enabled: true },
|
|
level
|
|
})
|
|
|
|
return wrapWithCLIMethods(logger)
|
|
}
|