mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-26 00:52:18 +03:00
Retargetado para release/v3.8.51 (release/v3.8.50 está congelada — freeze issue #11439). Validado em lote combinado (batch-0824h2, junto de #11435/#11436/#11437) contra o tip de release/v3.8.51: typecheck:core limpo, gates estáticos OK, 127/127 testes focados passando. Investigação sólida com repro real via container isolado, três causas independentes identificadas e corrigidas com testes de regressão dedicados para cada uma. Obrigado pela contribuição!
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import { parentPort } from "node:worker_threads";
|
|
import {
|
|
applyCompression,
|
|
applyStackedCompression,
|
|
type StackedCompressionStep,
|
|
} from "./strategySelector.ts";
|
|
import type {
|
|
CompressionWorkerJob,
|
|
CompressionWorkerMessage,
|
|
} from "./compressionWorkerProtocol.ts";
|
|
|
|
if (!parentPort) throw new Error("compressionWorker must run in a worker thread");
|
|
parentPort.on("message", (job: CompressionWorkerJob) => {
|
|
try {
|
|
const onEngineStep = (step: StackedCompressionStep) =>
|
|
parentPort.postMessage({
|
|
id: job.id,
|
|
type: "step",
|
|
step,
|
|
} satisfies CompressionWorkerMessage);
|
|
const result =
|
|
job.mode === "stacked"
|
|
? applyStackedCompression(job.body, job.options?.config?.stackedPipeline, {
|
|
...job.options,
|
|
onEngineStep,
|
|
})
|
|
: applyCompression(job.body, job.mode, job.options);
|
|
parentPort.postMessage({
|
|
id: job.id,
|
|
type: "result",
|
|
result,
|
|
} satisfies CompressionWorkerMessage);
|
|
} catch (error) {
|
|
parentPort.postMessage({
|
|
id: job.id,
|
|
type: "error",
|
|
error: error instanceof Error ? error.message : String(error),
|
|
} satisfies CompressionWorkerMessage);
|
|
}
|
|
});
|