UNPKG

@graphql-mesh/serve-cli

Version:
23 lines (22 loc) 1.02 kB
import { createDisposable } from '@graphql-mesh/utils'; export async function startuWebSocketsServer({ handler, log, protocol, host, port, sslCredentials, maxHeaderSize, }) { process.env.UWS_HTTP_MAX_HEADERS_SIZE = maxHeaderSize.toString(); return import('uWebSockets.js').then(uWS => { const app = sslCredentials ? uWS.SSLApp(sslCredentials) : uWS.App(); app.any('/*', handler); log.info(`Starting server on ${protocol}://${host}:${port}`); return new Promise((resolve, reject) => { app.listen(host, port, function listenCallback(listenSocket) { if (listenSocket) { resolve(createDisposable(() => { log.info(`Closing ${protocol}://${host}:${port}`); app.close(); })); } else { reject(new Error(`Failed to start server on ${protocol}://${host}:${port}!`)); } }); }); }); }