Assessor_2.0/server/import-worker.ts

21 lines
796 B
TypeScript

import { parentPort, workerData } from 'node:worker_threads';
import type { ImportExecutionRequest } from './import-executor';
import { directImportExecutor } from './import-executor';
import { ImportError } from '../src/shared/errors';
const port = parentPort;
if (!port) throw new Error('Import-Worker benötigt einen übergeordneten Thread.');
void directImportExecutor.execute(workerData as ImportExecutionRequest)
.then(dataset => port.postMessage({ ok: true, dataset }))
.catch((error: unknown) => {
const importError = error instanceof ImportError ? error : null;
port.postMessage({
ok: false,
error: {
message: error instanceof Error ? error.message : 'Unbekannter Parserfehler',
diagnostics: importError?.diagnostics ?? []
}
});
});