serveJsListener function

Future<ServerHandle> serveJsListener(
  1. String runtime,
  2. Engine engine, {
  3. required String host,
  4. required int port,
  5. required RoutedNodeRuntimeInfo info,
})

Starts a JavaScript listener using the supplied host server factory.

Implementation

Future<ServerHandle> serveJsListener(
  String runtime,
  Engine engine, {
  required String host,
  required int port,
  required RoutedNodeRuntimeInfo info,
}) async {
  await engine.initialize();
  final server = await createHostServer(
    runtime,
    engine,
    host: host,
    port: port,
  );
  final actualPort = _readPort(server) ?? port;
  publishHostReady(engine, info);
  return JsServerHandle(
    server: server,
    engine: engine,
    info: info,
    host: host,
    port: actualPort,
    closeSockets: info.runtime == RoutedNodeRuntime.bun
        ? () => closeBunWebSocketsForServer(server)
        : null,
    waitForSockets: info.runtime == RoutedNodeRuntime.bun
        ? () => waitForBunWebSocketsForServer(server)
        : null,
  );
}