File size: 856 Bytes
11ae1d4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { parentPort, workerData } from 'worker_threads';
import { Pipeline } from './core/Pipeline.js';
import { ScoutStage } from './stages/scoutStage.js';
import { GenerateStage } from './stages/generateStage.js';
import { ScoreStage } from './stages/scoreStage.js';
import { BuildStage } from './stages/buildStage.js';

const seed = workerData.seed;

const pipeline = new Pipeline(
  [new ScoutStage(), new GenerateStage(), new ScoreStage(), new BuildStage()],
  {
    onStageComplete: (r) => {
      parentPort.postMessage({ type: 'progress', seedId: workerData.id, stage: r.stage, spentUsd: r.spentUsd });
    },
  }
);

try {
  const result = await pipeline.run(seed);
  parentPort.postMessage({ type: 'done', seedId: workerData.id, result });
} catch (err) {
  parentPort.postMessage({ type: 'error', seedId: workerData.id, error: err.message });
}