too
Version:
Combine multiple processes' Stdout/Stderr/SIGINT to keep them all foreground
25 lines (24 loc) • 695 B
JavaScript
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);
});
});
}
}