UNPKG

too

Version:

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

25 lines (24 loc) 695 B
import * as child_process from "child_process"; export class VarGenerator { generate; collect; __value; constructor(generate, collect = "stdout") { this.generate = generate; this.collect = collect; } async value() { if (this.__value) { return this.__value; } return new Promise((resolve, reject) => { child_process.exec(this.generate, (err, stdout, stderr) => { if (err) { return reject(err); } this.__value = (this.collect === "stdout" ? stdout : stderr).trim(); resolve(this.__value); }); }); } }