import path from "path"; import { Worker } from 'worker_threads'; import {Logger} from "../logging/logger.js"; function launchWorker({templatePath, avatarURL, username}) { return new Promise((resolve, reject) => { const workerFile = path.resolve('./wwwroot/core/namecards/nameCardWorker.js'); const worker = new Worker(workerFile); worker.postMessage({templatePath, avatarURL, username}); worker.on('message', (result) => { resolve(result); worker.terminate() .catch(err => Logger.error("Unable to terminate worker", err.message)); }); worker.on('error', (err) => { reject(err); worker.terminate() .catch(err => Logger.error("Unable to terminate worker", err.message)); }); worker.on('exit', (code) => { if (code !== 0) reject(new Error(`Worker stopped with code ${code}`)); }); }); } export {launchWorker}