mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 10:33:54 +00:00
feat: Add Deno.exitCode
API (#23609)
This commits adds the ability to set a would-be exit code for the Deno process without forcing an immediate exit, through the new `Deno.exitCode` API. - **Implements `Deno.exitCode` getter and setter**: Adds support for setting and retrieving a would-be exit code via `Deno.exitCode`. This allows for asynchronous cleanup before process termination without immediately exiting. - **Ensures type safety**: The setter for `Deno.exitCode` validates that the provided value is a number, throwing a TypeError if not, to ensure that only valid exit codes are set. Closes to #23605 --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
This commit is contained in:
parent
cf611fbf54
commit
13723f267e
20 changed files with 322 additions and 24 deletions
|
@ -787,10 +787,10 @@ Deno.test("process.exitCode", () => {
|
|||
assertEquals(process.exitCode, undefined);
|
||||
process.exitCode = 127;
|
||||
assertEquals(process.exitCode, 127);
|
||||
// deno-lint-ignore no-explicit-any
|
||||
(process.exitCode as any) = "asdf";
|
||||
// deno-lint-ignore no-explicit-any
|
||||
assertEquals(process.exitCode as any, "asdf");
|
||||
assertThrows(() => {
|
||||
// deno-lint-ignore no-explicit-any
|
||||
(process.exitCode as any) = "asdf";
|
||||
});
|
||||
// deno-lint-ignore no-explicit-any
|
||||
(process.exitCode as any) = "10";
|
||||
process.exitCode = undefined; // reset
|
||||
|
@ -827,7 +827,7 @@ Deno.test("process.exitCode in should change exit code", async () => {
|
|||
);
|
||||
await exitCodeTest(
|
||||
"import process from 'node:process'; process.exitCode = NaN;",
|
||||
0,
|
||||
1,
|
||||
);
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue