summaryrefslogtreecommitdiff
path: root/src/api/logs.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/logs.ts')
-rw-r--r--src/api/logs.ts23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/api/logs.ts b/src/api/logs.ts
index 53bb8ad..66989ce 100644
--- a/src/api/logs.ts
+++ b/src/api/logs.ts
@@ -1,6 +1,5 @@
import { pad0 } from '~/misc/utils';
-import { Log } from '~/store/types';
-import { LogsAPIConfig } from '~/types';
+import { Log, LogsAPIConfig } from '~/types';
import { buildLogsWebSocketURL, getURLAndInit } from '../misc/request-helper';
@@ -21,8 +20,8 @@ const getRandomStr = () => {
let even = false;
let decoded = '';
-let ws: WebSocket;
-let controller: AbortController;
+let ws: WebSocket | undefined;
+let controller: AbortController | undefined;
let usingFetchFallback = false;
let currentConnStr: string;
@@ -41,7 +40,6 @@ function appendData(s: string) {
try {
o = JSON.parse(s);
} catch (err) {
-
console.log('JSON.parse error', s);
return;
}
@@ -65,7 +63,7 @@ function formatDate(d: Date) {
return `${YY}-${MM}-${dd} ${HH}:${mm}:${ss}`;
}
-function pump(reader: ReadableStreamDefaultReader) {
+function pump(reader: ReadableStreamDefaultReader): Promise<void> {
return reader.read().then(({ done, value }) => {
const str = textDecoder.decode(value, { stream: !done });
decoded += str;
@@ -82,7 +80,6 @@ function pump(reader: ReadableStreamDefaultReader) {
appendData(lastSplit);
decoded = '';
-
console.log('GET /logs streaming done');
usingFetchFallback = false;
return;
@@ -97,7 +94,7 @@ function pump(reader: ReadableStreamDefaultReader) {
function makeConnStr(c: LogsAPIConfig) {
const keys = Object.keys(c);
keys.sort();
- return keys.map((k) => c[k]).join('|');
+ return keys.map((k) => c[k as keyof LogsAPIConfig]).join('|');
}
function isConnectionLive() {
@@ -139,7 +136,7 @@ function openConnection(apiConfig: LogsAPIConfig) {
export function fetchLogs(
apiConfig: LogsAPIConfig,
- appendLog: AppendLogFn
+ appendLog: AppendLogFn,
): UnsubscribeFn | undefined {
if (apiConfig.logLevel === 'uninit') return undefined;
@@ -179,14 +176,16 @@ function fetchLogsWithFetch(apiConfig: LogsAPIConfig) {
signal,
}).then(
(response) => {
- const reader = response.body.getReader();
- pump(reader);
+ if (!response.body) {
+ usingFetchFallback = false;
+ return;
+ }
+ pump(response.body.getReader());
},
(err) => {
usingFetchFallback = false;
if (signal.aborted) return;
-
console.log('GET /logs error:', err.message);
},
);