@ricsam/isolate-daemon 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,6 +47,7 @@ var import_isolate_protocol = require("@ricsam/isolate-protocol");
47
47
  var import_callback_fs_handler = require("./callback-fs-handler.cjs");
48
48
  var import_isolate_runtime = require("@ricsam/isolate-runtime");
49
49
  var LINKER_CONFLICT_ERROR = "Module is currently being linked by another linker";
50
+ var NULL_BODY_STATUSES = new Set([101, 103, 204, 205, 304]);
50
51
  function getErrorText(error) {
51
52
  if (error instanceof Error) {
52
53
  const cause = error.cause;
@@ -758,6 +759,7 @@ async function handleCreateRuntime(message, connection, state) {
758
759
  return { ok: false, error: { name: error.name, message: error.message } };
759
760
  }
760
761
  },
762
+ timeout: message.options.playwright?.timeout,
761
763
  console: playwrightCallbacks.console,
762
764
  onEvent: (event) => {
763
765
  const conn = callbackContext.connection;
@@ -1479,16 +1481,36 @@ function handleCallbackStreamStart(message, connection) {
1479
1481
  return Promise.resolve();
1480
1482
  }
1481
1483
  });
1484
+ const cancelStream = () => {
1485
+ connection.callbackStreamReceivers.delete(message.streamId);
1486
+ sendMessage(connection.socket, {
1487
+ type: import_isolate_protocol.MessageType.CALLBACK_STREAM_CANCEL,
1488
+ streamId: message.streamId
1489
+ });
1490
+ };
1482
1491
  connection.callbackStreamReceivers.set(message.streamId, receiver);
1483
1492
  const pending = connection.pendingCallbacks.get(message.requestId);
1484
- if (pending) {
1485
- connection.pendingCallbacks.delete(message.requestId);
1486
- const response = new Response(readableStream, {
1493
+ if (!pending) {
1494
+ cancelStream();
1495
+ return;
1496
+ }
1497
+ try {
1498
+ const body = NULL_BODY_STATUSES.has(message.metadata.status) ? null : readableStream;
1499
+ const response = new Response(body, {
1487
1500
  status: message.metadata.status,
1488
1501
  statusText: message.metadata.statusText,
1489
1502
  headers: message.metadata.headers
1490
1503
  });
1504
+ connection.pendingCallbacks.delete(message.requestId);
1491
1505
  pending.resolve({ __streamingResponse: true, response });
1506
+ if (body === null) {
1507
+ cancelStream();
1508
+ }
1509
+ } catch (err) {
1510
+ connection.pendingCallbacks.delete(message.requestId);
1511
+ cancelStream();
1512
+ const error = err instanceof Error ? err : new Error(String(err));
1513
+ pending.reject(error);
1492
1514
  }
1493
1515
  }
1494
1516
  function handleCallbackStreamChunk(message, connection) {
@@ -1751,4 +1773,4 @@ async function handleClearCollectedData(message, connection, state) {
1751
1773
  }
1752
1774
  }
1753
1775
 
1754
- //# debugId=E73567439C8E8F2D64756E2164756E21
1776
+ //# debugId=CCDD5E4DA24900F364756E2164756E21