Initial commit
This commit is contained in:
46
node_modules/execa/lib/convert/shared.js
generated
vendored
Normal file
46
node_modules/execa/lib/convert/shared.js
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
import {finished} from 'node:stream/promises';
|
||||
import {isStreamAbort} from '../resolve/wait-stream.js';
|
||||
|
||||
export const safeWaitForSubprocessStdin = async subprocessStdin => {
|
||||
if (subprocessStdin === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await waitForSubprocessStdin(subprocessStdin);
|
||||
} catch {}
|
||||
};
|
||||
|
||||
export const safeWaitForSubprocessStdout = async subprocessStdout => {
|
||||
if (subprocessStdout === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await waitForSubprocessStdout(subprocessStdout);
|
||||
} catch {}
|
||||
};
|
||||
|
||||
export const waitForSubprocessStdin = async subprocessStdin => {
|
||||
await finished(subprocessStdin, {cleanup: true, readable: false, writable: true});
|
||||
};
|
||||
|
||||
export const waitForSubprocessStdout = async subprocessStdout => {
|
||||
await finished(subprocessStdout, {cleanup: true, readable: true, writable: false});
|
||||
};
|
||||
|
||||
// When `readable` or `writable` aborts/errors, awaits the subprocess, for the reason mentioned above
|
||||
export const waitForSubprocess = async (subprocess, error) => {
|
||||
await subprocess;
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
export const destroyOtherStream = (stream, isOpen, error) => {
|
||||
if (error && !isStreamAbort(error)) {
|
||||
stream.destroy(error);
|
||||
} else if (isOpen) {
|
||||
stream.destroy();
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user