import { parentPort, workerData } from "node:worker_threads"; import { simulate } from "@spinza/game-core"; import { RAW_GAMES } from "@spinza/games"; interface WorkerInput { slug: string; spins: number; bet: number; payScale: number; seed?: number; } const input = workerData as WorkerInput; const base = RAW_GAMES.find((g) => g.slug === input.slug); if (!base) throw new Error(`unknown game ${input.slug}`); const def = { ...base, payScale: input.payScale }; const result = simulate(def, { spins: input.spins, bet: input.bet, seed: input.seed, progressEvery: 100_000, onProgress: (done) => parentPort?.postMessage({ type: "progress", done }), }); parentPort?.postMessage({ type: "done", result });