]> git.proxmox.com Git - pve-eslint.git/blob - src/lib/worker.js
9a8c955b0d6c2fe61534da7ceed629a98139cff4
[pve-eslint.git] / src / lib / worker.js
1 'use strict';
2
3 const worker = require('worker_threads');
4
5 if (!worker.isMainThread) {
6 const eslint = require('pve-eslint');
7 const data = worker.workerData;
8 const cli = new eslint.CLIEngine(data.cliOptions);
9 const report = cli.executeOnFiles(data.files);
10 worker.parentPort.postMessage(report);
11 } else {
12 module.exports = async function createWorker(workerData) {
13 return new Promise((resolve, reject) => {
14 const child = new worker.Worker(__filename,
15 {
16 workerData,
17 },
18 );
19 child.on('message', resolve);
20 child.on('error', reject);
21 child.on('exit', (code) => {
22 if (code !== 0) {reject(new Error(`Worker stopped with exit code ${code}`));}
23 });
24 });
25 }
26 }
27