26 lines
782 B
JavaScript
26 lines
782 B
JavaScript
import {DiscardedError} from '../return/final-error.js';
|
|
import {isMaxBufferSync} from '../io/max-buffer.js';
|
|
import {isFailedExit} from './exit-async.js';
|
|
|
|
// Retrieve exit code, signal name and error information, with synchronous methods
|
|
export const getExitResultSync = ({error, status: exitCode, signal, output}, {maxBuffer}) => {
|
|
const resultError = getResultError(error, exitCode, signal);
|
|
const timedOut = resultError?.code === 'ETIMEDOUT';
|
|
const isMaxBuffer = isMaxBufferSync(resultError, output, maxBuffer);
|
|
return {
|
|
resultError,
|
|
exitCode,
|
|
signal,
|
|
timedOut,
|
|
isMaxBuffer,
|
|
};
|
|
};
|
|
|
|
const getResultError = (error, exitCode, signal) => {
|
|
if (error !== undefined) {
|
|
return error;
|
|
}
|
|
|
|
return isFailedExit(exitCode, signal) ? new DiscardedError() : undefined;
|
|
};
|