🌳
pt0/sharedF/betterConsLogF.mts
1import * as _ from 'lodash-es'
2import util from 'util'
5type BetLogFormatter = (arg: any, key?: string | number) => any
7// Hook for serverF to inject silencing logic (set by mcpSilentCtx in serverF)
8export let isSilenced: () => boolean = () => false
9export const setIsSilenced = (fn: () => boolean) => { isSilenced = fn }
11export let getQuiet: () => boolean = () => false
12export const setGetQuiet = (fn: () => boolean) => { getQuiet = fn }
14export const registerBetLogFormatter = (fn: BetLogFormatter) => {
15 betLogFormatters.push(fn)
18export { notFormatted as betLogNotFormatted }
20export const betLog = (...argA: any[]): void => {
21 if (isSilenced() || getQuiet()) return
22 argA = _.map(argA, betInspect)
24 const noWindow = ((typeof window) == 'undefined')
26 console.log(..._.map(argA, (arg : unknown) => {
27 if (_.isString(arg)) return arg
28 if (!noWindow) return arg
29 return util.inspect(arg, {
30 showHidden: false, depth: null,
31 maxArrayLength: null,
32 breakLength: 300,
33 colors: !!process.stdout.isTTY // disable colors when piping into subl or code -
34 }
35 )}))
38export const betVerboseLog = (...props: any[]): void => {
39 if (!process.env.VERYVERBOSE) return
40 betLog(...props)