UNPKG

@nori-zk/proof-conversion

Version:

Verifying zkVM proofs inside o1js circuits, to generate Mina compatible proof

53 lines 1.7 kB
import chalk from 'chalk'; import { loggingEventEmitter } from './logger.js'; export class LogPrinter { constructor(header, enabledLevels = [ 'log', 'info', 'error', 'warn', 'debug', 'verbose', 'fatal', ]) { this.header = header; this.enabledLevels = new Set(enabledLevels); loggingEventEmitter.on('log', (data) => this.handleLog(data)); } formatLog(level, message, context, timestamp) { const color = LogPrinter.colors[level]; let formattedMessage = typeof message === 'object' ? JSON.stringify(message, null, 2) : message; let logString = `${chalk.green(this.header)} - ${chalk.white(timestamp)} ${color(level.toUpperCase().padStart(7))}`; if (context) { logString += ` ${chalk.yellow(`[${context}]`)}`; } logString += ` ${color(formattedMessage)}`; return logString; } handleLog({ level, message, context, timestamp, }) { if (!this.enabledLevels.has(level)) return; if (level === 'error' || level === 'fatal') { console.error(this.formatLog(level, message, context, timestamp)); } else { console.log(this.formatLog(level, message, context, timestamp)); } } enable(level) { this.enabledLevels.add(level); } disable(level) { this.enabledLevels.delete(level); } } LogPrinter.colors = { log: chalk.green, info: chalk.blue, error: chalk.red, warn: chalk.rgb(227, 71, 37), debug: chalk.rgb(187, 154, 247), verbose: chalk.cyan, fatal: chalk.red.bold, }; //# sourceMappingURL=log_printer.js.map