From a286aa09f4e20656957b84279d586d44c0ef16ef Mon Sep 17 00:00:00 2001
From: jonasled <git@jonasled.de>
Date: Sun, 28 Feb 2021 14:09:57 +0100
Subject: [PATCH] fix error.ts gets alwaysExecuted

---
 public/404.php          |  3 +++
 public/internal/500.php |  7 +++++--
 ts/error.ts             | 16 +++++++++-------
 3 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/public/404.php b/public/404.php
index e11fe4d..45f4426 100644
--- a/public/404.php
+++ b/public/404.php
@@ -56,5 +56,8 @@ if (strpos($_SERVER['HTTP_HOST'], '.onion') !== false) {
     ];
 </script>
 <script src="/js/script.js"></script>
+<script>
+    startNewTask();
+</script>
 </body>
 </html>
\ No newline at end of file
diff --git a/public/internal/500.php b/public/internal/500.php
index 1d9834f..79fcc9a 100644
--- a/public/internal/500.php
+++ b/public/internal/500.php
@@ -57,8 +57,11 @@ function getError500()
             }
              
              ];
-          </script>
-          <script src="/js/script.js"></script>
+            </script>
+            <script src="/js/script.js"></script>
+            <script>
+                startNewTask();
+            </script>
        </body>
     </html>
 EOF;
diff --git a/ts/error.ts b/ts/error.ts
index da31c3c..e82e432 100644
--- a/ts/error.ts
+++ b/ts/error.ts
@@ -2,14 +2,14 @@ import Timeout = NodeJS.Timeout;
 
 let intervalTime = 150;
 
-let terminal:HTMLElement = <HTMLElement> document.getElementsByClassName("terminal")[0];
-let historyContainer:HTMLElement = <HTMLElement> terminal.getElementsByClassName("history")[0];
-let promptContainer:HTMLElement = <HTMLElement> terminal.getElementsByClassName("prompt")[0];
-
 let dataIndex = 0;
 let stringPosition = 0;
 let printTask: Timeout;
 
+let terminal:HTMLElement;
+let historyContainer:HTMLElement;
+let promptContainer:HTMLElement;
+
 function writeOut() {
 
    // @ts-ignore
@@ -33,7 +33,9 @@ function writeOut() {
 }
 
 function startNewTask() {
-   printTask = setInterval(writeOut, intervalTime);
-}
 
-startNewTask();
\ No newline at end of file
+   terminal = <HTMLElement> document.getElementsByClassName("terminal")[0];
+   historyContainer = <HTMLElement> terminal.getElementsByClassName("history")[0];
+   promptContainer = <HTMLElement> terminal.getElementsByClassName("prompt")[0];
+   printTask = setInterval(writeOut, intervalTime);
+}
\ No newline at end of file
-- 
GitLab