Files
FreeCADWasmDev/tools/points-facade-smoke-worker.mjs
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

2 lines
1.1 KiB
JavaScript

import fs from "node:fs";import path from "node:path";import{createRequire}from"node:module";import{parentPort,workerData}from"node:worker_threads";import{pathToFileURL}from"node:url";const f=await import(workerData.facadePath),e=await import(workerData.envelopePath);globalThis.__dirname=`${workerData.buildDirectory}${path.sep}`;globalThis.require=createRequire(import.meta.url);const m=await import(pathToFileURL(path.join(workerData.buildDirectory,"FreeCADWebPointsRuntimeProbe.js")));const k=await m.default({wasmBinary:fs.readFileSync(path.join(workerData.buildDirectory,"FreeCADWebPointsRuntimeProbe.wasm"))});const q=new e.FacadeSerialQueue();parentPort.postMessage({kind:"ready",action:f.POINTS_COMMAND});parentPort.on("message",async x=>{if(e.isFacadeCancel(x)){if(!q.cancel(x))parentPort.postMessage(e.createFailure(x.requestId,"cancel_rejected","request is not active"));return}if(f.isPointsRequest(x)){const source=x.requestId==="points-cancel-1"?new Promise(r=>setTimeout(()=>r(k),25)):k;parentPort.postMessage(await f.dispatchPoints(q,x,source));return}parentPort.postMessage(e.createFailure("invalid","invalid_request","Points request envelope invalid"))});