alwaysai
Version:
The alwaysAI command-line interface (CLI)
34 lines • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const child_process_1 = require("child_process");
const signalExit = require("signal-exit");
function runStreaming(cmd) {
return new Promise((resolve, reject) => {
const child = child_process_1.spawn(cmd.exe, cmd.args || [], {
cwd: cmd.cwd,
});
signalExit(() => {
child.kill();
});
if (cmd.input) {
cmd.input.pipe(child.stdin);
}
const errChunks = [];
function stderrChunkHandler(chunk) {
errChunks.push(chunk);
}
child.stderr.on('data', stderrChunkHandler);
child.on('error', (err) => {
if (err && !err.stderr) {
err.stderr = Buffer.concat(errChunks).toString();
}
reject(err);
});
child.stdout.once('readable', () => {
resolve(child.stdout);
child.stderr.removeListener('data', stderrChunkHandler);
});
});
}
exports.runStreaming = runStreaming;
//# sourceMappingURL=run-streaming.js.map