Files
moteva/frontend/src/ui/lib/cadImport.worker.ts
T

31 lines
787 B
TypeScript
Raw Normal View History

import { convertCadBufferToSvg, type CadFormat } from "./cadConversion";
type CadWorkerRequest = {
buffer: ArrayBuffer;
format: CadFormat;
};
type CadWorkerResponse =
| { ok: true; svg: string }
| { ok: false; error: string };
type WorkerScope = {
onmessage: ((event: MessageEvent<CadWorkerRequest>) => void) | null;
postMessage: (message: CadWorkerResponse) => void;
};
const workerScope = globalThis as unknown as WorkerScope;
workerScope.onmessage = (event) => {
try {
const { buffer, format } = event.data;
const svg = convertCadBufferToSvg(buffer, format);
workerScope.postMessage({ ok: true, svg });
} catch (error) {
workerScope.postMessage({
ok: false,
error: error instanceof Error ? error.message : String(error)
});
}
};