mirror of
https://github.com/gethomepage/homepage.git
synced 2026-01-14 21:22:08 +08:00
Update proxy.js
This commit is contained in:
@@ -19,24 +19,24 @@ function buildWebsocketUrl(baseUrl) {
|
|||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
function waitForEvent(ws, matcher, { event = "message", parseJson = true, timeoutMs = 10000 } = {}) {
|
function waitForEvent(ws, handler, { event = "message", parseJson = true } = {}) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const timeout = setTimeout(() => {
|
const timeout = setTimeout(() => {
|
||||||
cleanup();
|
cleanup();
|
||||||
reject(new Error("TrueNAS websocket wait timed out"));
|
reject(new Error("TrueNAS websocket wait timed out"));
|
||||||
}, timeoutMs);
|
}, 10000);
|
||||||
|
|
||||||
const handleEvent = (payload) => {
|
const handleEvent = (payload) => {
|
||||||
try {
|
try {
|
||||||
const parsed = parseJson ? JSON.parse(payload.toString()) : payload;
|
const parsed = parseJson ? JSON.parse(payload.toString()) : payload;
|
||||||
if (parseJson) logger.info("Received TrueNAS websocket message: %o", parsed);
|
if (parseJson) logger.info("Received TrueNAS websocket message: %o", parsed);
|
||||||
const matchResult = matcher(parsed);
|
const handlerResult = handler(parsed);
|
||||||
if (matchResult !== undefined) {
|
if (handlerResult !== undefined) {
|
||||||
cleanup();
|
cleanup();
|
||||||
if (matchResult instanceof Error) {
|
if (handlerResult instanceof Error) {
|
||||||
reject(matchResult);
|
reject(handlerResult);
|
||||||
} else {
|
} else {
|
||||||
resolve(matchResult);
|
resolve(handlerResult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
Reference in New Issue
Block a user