UNPKG

@mui/internal-docs-infra

Version:

MUI Infra - internal documentation creation tools.

36 lines (32 loc) 1.2 kB
// webpack does not like node: imports // eslint-disable-next-line n/prefer-node-protocol import { parentPort, workerData } from 'worker_threads'; import { SocketServer } from "./socketServer.mjs"; import { processTypes } from "./processTypes.mjs"; // Re-export types for convenience // Get socket directory from worker data (if provided) const socketDir = workerData?.socketDir; // When true, start a socket server so other workers can connect via IPC. const isServer = workerData?.isServer === true; let socketServer = null; // If told to be a server, start the socket server for other workers to connect to. const socketReady = isServer ? SocketServer.create(processTypes, socketDir).then(async server => { socketServer = server; await server.start(); }) : Promise.resolve(); if (parentPort) { parentPort.on('message', async request => { await socketReady; const response = await processTypes(request); // Echo back the requestId for the worker manager to match responses parentPort?.postMessage({ ...response, requestId: request.requestId }); }); parentPort.on('close', () => { if (socketServer) { socketServer.shutdown(); } }); }