UNPKG

too

Version:

Combine multiple processes' Stdout/Stderr/SIGINT to keep them all foreground

31 lines (30 loc) 1 kB
import { RESET, UNDERLINE } from "./colors.js"; export class Logger { } export class DefaultLogger { verbose; stdout; stderr; constructor(verbose = true, stdout = process.stdout, stderr = process.stderr) { this.verbose = verbose; this.stdout = stdout; this.stderr = stderr; } stage(stage) { this.stdout.write(`\n✅ ${stage}\n`); } accept(label, color, oneliner) { this.stdout.write(`${color}[${label}]${RESET} ${UNDERLINE}${oneliner.trim()}${RESET}\n`); } output(label, color, stdout, stderr) { if (stdout.length) stdout.toString().trim().split("\n").map((line) => { this.stdout.write(`${color}[${label}]${RESET} ${line}\n`); }); if (stderr.length) stderr.toString().trim().split("\n").map((line) => { this.stderr.write(`${color}[${label}]${RESET} ${line}\n`); }); } } // export class JsonRowsLogger implements Logger { }