mirror of
https://github.com/denoland/deno.git
synced 2025-08-31 07:47:46 +00:00
fix(node): setting process.exitCode should change exit code of process (#21429)
This commit is contained in:
parent
61a4e88e38
commit
f29075ae4c
2 changed files with 65 additions and 5 deletions
|
@ -76,15 +76,16 @@ const notImplementedEvents = [
|
|||
];
|
||||
|
||||
export const argv: string[] = [];
|
||||
let globalProcessExitCode: number | undefined = undefined;
|
||||
|
||||
/** https://nodejs.org/api/process.html#process_process_exit_code */
|
||||
export const exit = (code?: number | string) => {
|
||||
if (code || code === 0) {
|
||||
if (typeof code === "string") {
|
||||
const parsedCode = parseInt(code);
|
||||
process.exitCode = isNaN(parsedCode) ? undefined : parsedCode;
|
||||
globalProcessExitCode = isNaN(parsedCode) ? undefined : parsedCode;
|
||||
} else {
|
||||
process.exitCode = code;
|
||||
globalProcessExitCode = code;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -426,7 +427,17 @@ class Process extends EventEmitter {
|
|||
_exiting = _exiting;
|
||||
|
||||
/** https://nodejs.org/api/process.html#processexitcode_1 */
|
||||
exitCode: undefined | number = undefined;
|
||||
get exitCode() {
|
||||
return globalProcessExitCode;
|
||||
}
|
||||
|
||||
set exitCode(code: number | undefined) {
|
||||
globalProcessExitCode = code;
|
||||
code = parseInt(code) || 0;
|
||||
if (!isNaN(code)) {
|
||||
ops.op_set_exit_code(code);
|
||||
}
|
||||
}
|
||||
|
||||
// Typed as any to avoid importing "module" module for types
|
||||
// deno-lint-ignore no-explicit-any
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue