// Tiny debug logger. Off by default; on via HYPERMOSH_DEBUG=1 in the env or the
// `-v`/`--verbose` CLI flag (which sets HYPERMOSH_DEBUG before anything logs).
// Everything goes to stderr so it never pollutes captured stdout (e.g. `id`).
import process from '#node:process'
let seq = 0
export function debugEnabled () {
return process.env.HYPERMOSH_DEBUG === '1' || process.env.HYPERMOSH_DEBUG === 'true'
}
// A tagged logger, e.g. log = mkLog('client'); log('connecting', key)
export function mkLog (tag) {
return (...args) => {
if (!debugEnabled()) return
const line = args.map((a) => (typeof a === 'string' ? a : safe(a))).join(' ')
try { process.stderr.write('[hypermosh:' + tag + ' #' + (++seq) + '] ' + line + '\n') } catch {}
}
}
function safe (v) {
try { return JSON.stringify(v) } catch { return String(v) }
}