UNPKG

nx

Version:

The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.

76 lines (75 loc) 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EXPECTED_TERMINATION_SIGNALS = void 0; exports.signalToCode = signalToCode; exports.codeToSignal = codeToSignal; exports.messageToCode = messageToCode; /** * Translates NodeJS signals to numeric exit code * @param signal */ function signalToCode(signal) { switch (signal) { case 'SIGHUP': return 128 + 1; case 'SIGINT': return 128 + 2; case 'SIGTERM': return 128 + 15; case 'SIGQUIT': return 128 + 3; default: return 128; } } /** * Translates numeric exit codes to NodeJS signals */ function codeToSignal(code) { switch (code) { case 128 + 1: return 'SIGHUP'; case 128 + 2: return 'SIGINT'; case 128 + 15: return 'SIGTERM'; case 128 + 3: return 'SIGQUIT'; default: return 'SIGTERM'; } } // Exit codes from signals that indicate intentional termination (SIGHUP, SIGINT, SIGQUIT, SIGTERM). // Excludes SIGKILL (137) and SIGABRT (134) as those indicate abnormal termination. exports.EXPECTED_TERMINATION_SIGNALS = new Set([129, 130, 131, 143]); /** * Translates a pty exit message (e.g. "Terminated by Interrupt") to a numeric exit code. * Handles both Linux exact-match and macOS strsignal formats (e.g. "Terminated by Hangup: 1"). */ function messageToCode(message) { if (message.startsWith('Terminated by ')) { const signalDescription = message.replace('Terminated by ', '').trim(); if (signalDescription.startsWith('Hangup')) return 129; if (signalDescription.startsWith('Interrupt')) return 130; if (signalDescription.startsWith('Quit')) return 131; if (signalDescription.startsWith('Abort')) return 134; if (signalDescription.startsWith('Killed')) return 137; if (signalDescription.startsWith('Terminated')) return 143; return 128; } else if (message.startsWith('Exited with code ')) { return parseInt(message.replace('Exited with code ', '').trim()); } else if (message === 'Success') { return 0; } else { return 1; } }