Initial commit
This commit is contained in:
47
node_modules/execa/lib/ipc/buffer-messages.js
generated
vendored
Normal file
47
node_modules/execa/lib/ipc/buffer-messages.js
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
import {checkIpcMaxBuffer} from '../io/max-buffer.js';
|
||||
import {shouldLogIpc, logIpcOutput} from '../verbose/ipc.js';
|
||||
import {getFdSpecificValue} from '../arguments/specific.js';
|
||||
import {loopOnMessages} from './get-each.js';
|
||||
|
||||
// Iterate through IPC messages sent by the subprocess
|
||||
export const waitForIpcOutput = async ({
|
||||
subprocess,
|
||||
buffer: bufferArray,
|
||||
maxBuffer: maxBufferArray,
|
||||
ipc,
|
||||
ipcOutput,
|
||||
verboseInfo,
|
||||
}) => {
|
||||
if (!ipc) {
|
||||
return ipcOutput;
|
||||
}
|
||||
|
||||
const isVerbose = shouldLogIpc(verboseInfo);
|
||||
const buffer = getFdSpecificValue(bufferArray, 'ipc');
|
||||
const maxBuffer = getFdSpecificValue(maxBufferArray, 'ipc');
|
||||
|
||||
for await (const message of loopOnMessages({
|
||||
anyProcess: subprocess,
|
||||
channel: subprocess.channel,
|
||||
isSubprocess: false,
|
||||
ipc,
|
||||
shouldAwait: false,
|
||||
reference: true,
|
||||
})) {
|
||||
if (buffer) {
|
||||
checkIpcMaxBuffer(subprocess, ipcOutput, maxBuffer);
|
||||
ipcOutput.push(message);
|
||||
}
|
||||
|
||||
if (isVerbose) {
|
||||
logIpcOutput(message, verboseInfo);
|
||||
}
|
||||
}
|
||||
|
||||
return ipcOutput;
|
||||
};
|
||||
|
||||
export const getBufferedIpcOutput = async (ipcOutputPromise, ipcOutput) => {
|
||||
await Promise.allSettled([ipcOutputPromise]);
|
||||
return ipcOutput;
|
||||
};
|
||||
Reference in New Issue
Block a user