From 866fe820e584d70e330142223a0d215cff3fd8b0 Mon Sep 17 00:00:00 2001
From: Chad Kimes <1936066+chkimes@users.noreply.github.com>
Date: Tue, 8 Aug 2023 15:15:33 +0000
Subject: [PATCH] Pass earlyExit parameter to run method so tests don't hang

---
 dist/restore-only/index.js | 12 ++++++++----
 dist/restore/index.js      | 12 ++++++++----
 src/restore.ts             | 12 ++++++++----
 src/restoreOnly.ts         | 12 ++++++++----
 4 files changed, 32 insertions(+), 16 deletions(-)

diff --git a/dist/restore-only/index.js b/dist/restore-only/index.js
index 28c6c3b..56833dd 100644
--- a/dist/restore-only/index.js
+++ b/dist/restore-only/index.js
@@ -37069,24 +37069,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
 Object.defineProperty(exports, "__esModule", { value: true });
 const restoreImpl_1 = __importDefault(__webpack_require__(835));
 const stateProvider_1 = __webpack_require__(309);
-function run() {
+function run(earlyExit) {
     return __awaiter(this, void 0, void 0, function* () {
         try {
             yield (0, restoreImpl_1.default)(new stateProvider_1.NullStateProvider());
         }
         catch (err) {
             console.error(err);
-            process.exit(1);
+            if (earlyExit) {
+                process.exit(1);
+            }
         }
         // node will stay alive if any promises are not resolved,
         // which is a possibility if HTTP requests are dangling
         // due to retries or timeouts. We know that if we got here
         // that all promises that we care about have successfully
         // resolved, so simply exit with success.
-        process.exit(0);
+        if (earlyExit) {
+            process.exit(0);
+        }
     });
 }
-run();
+run(true);
 exports.default = run;
 
 
diff --git a/dist/restore/index.js b/dist/restore/index.js
index 2ea979b..4bef4b4 100644
--- a/dist/restore/index.js
+++ b/dist/restore/index.js
@@ -47625,24 +47625,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
 Object.defineProperty(exports, "__esModule", { value: true });
 const restoreImpl_1 = __importDefault(__webpack_require__(835));
 const stateProvider_1 = __webpack_require__(309);
-function run() {
+function run(earlyExit) {
     return __awaiter(this, void 0, void 0, function* () {
         try {
             yield (0, restoreImpl_1.default)(new stateProvider_1.StateProvider());
         }
         catch (err) {
             console.error(err);
-            process.exit(1);
+            if (earlyExit) {
+                process.exit(1);
+            }
         }
         // node will stay alive if any promises are not resolved,
         // which is a possibility if HTTP requests are dangling
         // due to retries or timeouts. We know that if we got here
         // that all promises that we care about have successfully
         // resolved, so simply exit with success.
-        process.exit(0);
+        if (earlyExit) {
+            process.exit(0);
+        }
     });
 }
-run();
+run(true);
 exports.default = run;
 
 
diff --git a/src/restore.ts b/src/restore.ts
index 966fb26..312d203 100644
--- a/src/restore.ts
+++ b/src/restore.ts
@@ -1,12 +1,14 @@
 import restoreImpl from "./restoreImpl";
 import { StateProvider } from "./stateProvider";
 
-async function run(): Promise<void> {
+async function run(earlyExit?: boolean | undefined): Promise<void> {
     try {
         await restoreImpl(new StateProvider());
     } catch (err) {
         console.error(err);
-        process.exit(1);
+        if (earlyExit) {
+            process.exit(1);
+        }
     }
 
     // node will stay alive if any promises are not resolved,
@@ -14,9 +16,11 @@ async function run(): Promise<void> {
     // due to retries or timeouts. We know that if we got here
     // that all promises that we care about have successfully
     // resolved, so simply exit with success.
-    process.exit(0);
+    if (earlyExit) {
+        process.exit(0);
+    }
 }
 
-run();
+run(true);
 
 export default run;
diff --git a/src/restoreOnly.ts b/src/restoreOnly.ts
index 5b0e019..baf1fd5 100644
--- a/src/restoreOnly.ts
+++ b/src/restoreOnly.ts
@@ -1,12 +1,14 @@
 import restoreImpl from "./restoreImpl";
 import { NullStateProvider } from "./stateProvider";
 
-async function run(): Promise<void> {
+async function run(earlyExit?: boolean | undefined): Promise<void> {
     try {
         await restoreImpl(new NullStateProvider());
     } catch (err) {
         console.error(err);
-        process.exit(1);
+        if (earlyExit) {
+            process.exit(1);
+        }
     }
 
     // node will stay alive if any promises are not resolved,
@@ -14,9 +16,11 @@ async function run(): Promise<void> {
     // due to retries or timeouts. We know that if we got here
     // that all promises that we care about have successfully
     // resolved, so simply exit with success.
-    process.exit(0);
+    if (earlyExit) {
+        process.exit(0);
+    }
 }
 
-run();
+run(true);
 
 export default run;