packages/web/src/worker.js (20 lines of code) (raw):

import { ModelTestSuite, PipelineTestSuite } from "@benchmarking/core"; const SUITES = { ModelTestSuite, PipelineTestSuite, }; self.addEventListener("message", async (event) => { const { command, suite, device } = event.data; if (command !== "start") return; console.log(`Starting test suite: ${suite} on device: ${device}`); const TestSuiteClass = SUITES[suite]; if (!TestSuiteClass) { console.error(`Unknown suite type: ${suite}`); return; } const cls = new TestSuiteClass({ device }); for await (const { name, result } of cls.run()) { self.postMessage({ status: "update", name, result }); } self.postMessage({ status: "complete" }); });