in modules/socket-engine/src/main.ts [38:71]
export function startSocketEngine(
moduleOrFactory: Type<{}>,
providers: StaticProvider[] = [],
host = 'localhost',
port = 9090,
): Promise<SocketEngineServer> {
return new Promise((resolve, _reject) => {
const engine = new CommonEngine(moduleOrFactory, providers);
const server = net.createServer((socket) => {
// eslint-disable-next-line @typescript-eslint/no-misused-promises
socket.on('data', async (buff) => {
const message = buff.toString();
const renderOptions = JSON.parse(message) as SocketEngineRenderOptions;
try {
const html = await engine.render(renderOptions);
socket.write(JSON.stringify({ html, id: renderOptions.id } as SocketEngineResponse));
} catch (error) {
// send the error down to the client then rethrow it
socket.write(
JSON.stringify({
html: null,
id: renderOptions.id,
error: error.toString(),
} as SocketEngineResponse),
);
}
});
});
server.listen(port, host);
resolve({ close: () => server.close() });
});
}