Change messaginging, allow adding more message types later

This commit is contained in:
Martin Asprusten
2026-08-29 14:14:36 +02:00
parent f3a1f058c0
commit 78c4050166
3 changed files with 52 additions and 30 deletions
+14 -8
View File
@@ -7,7 +7,7 @@ import { createUrl, parseUrl } from './url/UrlHandler.js';
import { wktToGeoJSON } from '@terraformer/wkt';
import PPENHandler from './files/ppenhandler.js';
import type { GeoJsonObject } from 'geojson';
import type { SearchStatusMessage, StartSearchMessage } from './worker/messages.js';
import type { FromWorkerMessage, ToWorkerMessage } from './worker/messages.js';
// Outside influences
let mapHandler = new MapHandler();
@@ -286,10 +286,13 @@ function updateState() {
// In case of messages from the web worker, do work
worker.onmessage = e => {
let message = e.data as SearchStatusMessage;
state.foundPath = message.path;
state.calculating = false;
updateState();
let fromWorker = e.data as FromWorkerMessage;
let message = fromWorker.message;
if (message.type == 'SearchFinished') {
state.foundPath = message.path;
state.calculating = false;
updateState();
}
}
function calculateRoute(): void {
@@ -326,9 +329,12 @@ function calculateRoute(): void {
weights.push(weightsRow);
}
let startSearchMessage: StartSearchMessage = {
weights: weights
};
let startSearchMessage: ToWorkerMessage = {
message: {
type: "StartSearch",
weights: weights
}
}
worker.postMessage(startSearchMessage);
}