Skip to content

Commit

Permalink
Refactor getStream()
Browse files Browse the repository at this point in the history
  • Loading branch information
ehmicky committed Jun 14, 2019
1 parent bad2140 commit 94a73e0
Showing 1 changed file with 14 additions and 19 deletions.
33 changes: 14 additions & 19 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const crossSpawn = require('cross-spawn');
const stripFinalNewline = require('strip-final-newline');
const npmRunPath = require('npm-run-path');
const isStream = require('is-stream');
const _getStream = require('get-stream');
const getStream = require('get-stream');
const mergeStream = require('merge-stream');
const pFinally = require('p-finally');
const onExit = require('signal-exit');
Expand Down Expand Up @@ -120,30 +120,25 @@ async function getBufferedData(stream, streamPromise) {
}
}

function getStream(process, stream, {encoding, buffer, maxBuffer}) {
if (!process[stream]) {
function getStreamPromise(stream, {encoding, buffer, maxBuffer}) {
if (!stream) {
return;
}

let ret;

if (!buffer) {
// TODO: Use `ret = util.promisify(stream.finished)(process[stream]);` when targeting Node.js 10
ret = new Promise((resolve, reject) => {
process[stream]
// TODO: Use `ret = util.promisify(stream.finished)(stream);` when targeting Node.js 10
return new Promise((resolve, reject) => {
stream
.once('end', resolve)
.once('error', reject);
});
} else if (encoding) {
ret = _getStream(process[stream], {
encoding,
maxBuffer
});
} else {
ret = _getStream.buffer(process[stream], {maxBuffer});
}

return ret;
if (encoding) {
return getStream(stream, {encoding, maxBuffer});
}

return getStream.buffer(stream, {maxBuffer});
}

function makeError(result, options) {
Expand Down Expand Up @@ -340,9 +335,9 @@ const execa = (file, args, options) => {
}), cleanup);

const handlePromise = () => {
const stdoutPromise = getStream(spawned, 'stdout', {encoding, buffer, maxBuffer});
const stderrPromise = getStream(spawned, 'stderr', {encoding, buffer, maxBuffer});
const allPromise = getStream(spawned, 'all', {encoding, buffer, maxBuffer: maxBuffer * 2});
const stdoutPromise = getStreamPromise(spawned.stdout, {encoding, buffer, maxBuffer});
const stderrPromise = getStreamPromise(spawned.stderr, {encoding, buffer, maxBuffer});
const allPromise = getStreamPromise(spawned.all, {encoding, buffer, maxBuffer: maxBuffer * 2});

const finalize = async () => {
let results;
Expand Down

0 comments on commit 94a73e0

Please sign in to comment.