echogarden
Version:
An easy-to-use speech toolset. Includes tools for synthesis, recognition, alignment, speech translation, language detection, source separation and more.
31 lines • 1.16 kB
JavaScript
import { isMainThread, parentPort } from 'node:worker_threads';
import { sendMessageToWorker, addListenerToWorkerMessages, startMessageChannel } from './Worker.js';
import { OpenPromise } from '../utilities/OpenPromise.js';
async function startIfInWorkerThread() {
if (isMainThread || !parentPort) {
return;
}
startMessageChannel();
addListenerToWorkerMessages((message) => {
parentPort?.postMessage(message);
});
const initOpenPromise = new OpenPromise();
parentPort.once('message', (message) => {
if (message.name == 'init') {
process.stderr.isTTY = message.stdErrIsTTY;
process.stderr.hasColors = () => message.hasColors;
process.stderr.write = (text) => {
parentPort.postMessage({ name: 'writeToStdErr', text });
return true;
};
initOpenPromise.resolve();
}
});
await initOpenPromise.promise;
parentPort.on('message', (message) => {
sendMessageToWorker(message);
});
}
// Start worker if running in worker thread
startIfInWorkerThread();
//# sourceMappingURL=WorkerStarter.js.map