mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
33 lines
882 B
TypeScript
33 lines
882 B
TypeScript
import { spawn, Thread, Worker } from 'threads';
|
|
|
|
/**
|
|
* @param {string} code
|
|
* @returns {Promise<void>}
|
|
*/
|
|
export function evaluateInWorker(
|
|
code: string,
|
|
waitTimeout: number
|
|
): Promise<string | null> {
|
|
return new Promise(async (resolve, reject) => {
|
|
const evaluationWorker = await spawn(new Worker('./workers/evaluation-worker'));
|
|
|
|
const timeout = setTimeout(async () => {
|
|
await Thread.terminate(evaluationWorker);
|
|
resolve(null);
|
|
}, waitTimeout);
|
|
|
|
try {
|
|
const result: string = await evaluationWorker.evaluate(code);
|
|
|
|
clearTimeout(timeout);
|
|
await Thread.terminate(evaluationWorker);
|
|
|
|
resolve(result);
|
|
} catch (error) {
|
|
clearTimeout(timeout);
|
|
await Thread.terminate(evaluationWorker);
|
|
|
|
reject(error);
|
|
}
|
|
});
|
|
} |