alwaysai
Version:
The alwaysAI command-line interface (CLI)
36 lines • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.runStreaming = void 0;
const child_process_1 = require("child_process");
const signalExit = require("signal-exit");
function runStreaming(cmd) {
return new Promise((resolve, reject) => {
var _a;
const child = (0, child_process_1.spawn)(cmd.exe, (_a = cmd.args) !== null && _a !== void 0 ? _a : [], {
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