@ricsam/isolate 0.1.4 → 0.1.6
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.
- package/README.md +45 -2
- package/dist/cjs/internal/async-context/index.cjs +401 -0
- package/dist/cjs/internal/async-context/index.cjs.map +10 -0
- package/dist/cjs/internal/client/connection.cjs +175 -123
- package/dist/cjs/internal/client/connection.cjs.map +3 -3
- package/dist/cjs/internal/console/index.cjs +2 -2
- package/dist/cjs/internal/console/index.cjs.map +2 -2
- package/dist/cjs/internal/core/index.cjs +22 -6
- package/dist/cjs/internal/core/index.cjs.map +3 -3
- package/dist/cjs/internal/crypto/index.cjs +2 -2
- package/dist/cjs/internal/crypto/index.cjs.map +2 -2
- package/dist/cjs/internal/daemon/connection.cjs +77 -12
- package/dist/cjs/internal/daemon/connection.cjs.map +3 -3
- package/dist/cjs/internal/encoding/index.cjs.map +1 -1
- package/dist/cjs/internal/fetch/index.cjs +119 -18
- package/dist/cjs/internal/fetch/index.cjs.map +3 -3
- package/dist/cjs/internal/fetch/stream-state.cjs.map +1 -1
- package/dist/cjs/internal/fs/index.cjs +2 -2
- package/dist/cjs/internal/fs/index.cjs.map +2 -2
- package/dist/cjs/internal/module-loader/bundle.cjs +277 -1
- package/dist/cjs/internal/module-loader/bundle.cjs.map +3 -3
- package/dist/cjs/internal/path/index.cjs.map +1 -1
- package/dist/cjs/internal/playwright/index.cjs +2 -2
- package/dist/cjs/internal/playwright/index.cjs.map +2 -2
- package/dist/cjs/internal/runtime/index.cjs +78 -6
- package/dist/cjs/internal/runtime/index.cjs.map +3 -3
- package/dist/cjs/internal/test-environment/index.cjs +2 -2
- package/dist/cjs/internal/test-environment/index.cjs.map +2 -2
- package/dist/cjs/internal/timers/index.cjs +42 -7
- package/dist/cjs/internal/timers/index.cjs.map +3 -3
- package/dist/cjs/internal/typecheck/isolate-types.cjs +36 -1
- package/dist/cjs/internal/typecheck/isolate-types.cjs.map +3 -3
- package/dist/cjs/package.json +1 -1
- package/dist/mjs/internal/async-context/index.mjs +361 -0
- package/dist/mjs/internal/async-context/index.mjs.map +10 -0
- package/dist/mjs/internal/client/connection.mjs +176 -123
- package/dist/mjs/internal/client/connection.mjs.map +3 -3
- package/dist/mjs/internal/console/index.mjs +2 -2
- package/dist/mjs/internal/console/index.mjs.map +2 -2
- package/dist/mjs/internal/core/index.mjs +22 -6
- package/dist/mjs/internal/core/index.mjs.map +3 -3
- package/dist/mjs/internal/crypto/index.mjs +2 -2
- package/dist/mjs/internal/crypto/index.mjs.map +2 -2
- package/dist/mjs/internal/daemon/connection.mjs +77 -12
- package/dist/mjs/internal/daemon/connection.mjs.map +3 -3
- package/dist/mjs/internal/encoding/index.mjs.map +1 -1
- package/dist/mjs/internal/fetch/index.mjs +119 -18
- package/dist/mjs/internal/fetch/index.mjs.map +3 -3
- package/dist/mjs/internal/fetch/stream-state.mjs.map +1 -1
- package/dist/mjs/internal/fs/index.mjs +2 -2
- package/dist/mjs/internal/fs/index.mjs.map +2 -2
- package/dist/mjs/internal/module-loader/bundle.mjs +277 -1
- package/dist/mjs/internal/module-loader/bundle.mjs.map +3 -3
- package/dist/mjs/internal/path/index.mjs.map +1 -1
- package/dist/mjs/internal/playwright/index.mjs +2 -2
- package/dist/mjs/internal/playwright/index.mjs.map +2 -2
- package/dist/mjs/internal/runtime/index.mjs +78 -6
- package/dist/mjs/internal/runtime/index.mjs.map +3 -3
- package/dist/mjs/internal/test-environment/index.mjs +2 -2
- package/dist/mjs/internal/test-environment/index.mjs.map +2 -2
- package/dist/mjs/internal/timers/index.mjs +42 -7
- package/dist/mjs/internal/timers/index.mjs.map +3 -3
- package/dist/mjs/internal/typecheck/isolate-types.mjs +36 -1
- package/dist/mjs/internal/typecheck/isolate-types.mjs.map +3 -3
- package/dist/mjs/package.json +1 -1
- package/dist/types/internal/async-context/index.d.ts +5 -0
- package/dist/types/internal/console/index.d.ts +1 -1
- package/dist/types/internal/core/index.d.ts +2 -2
- package/dist/types/internal/crypto/index.d.ts +1 -1
- package/dist/types/internal/daemon/types.d.ts +1 -0
- package/dist/types/internal/encoding/index.d.ts +1 -1
- package/dist/types/internal/fetch/index.d.ts +1 -1
- package/dist/types/internal/fetch/stream-state.d.ts +1 -1
- package/dist/types/internal/fs/index.d.ts +1 -1
- package/dist/types/internal/path/index.d.ts +1 -1
- package/dist/types/internal/playwright/index.d.ts +1 -1
- package/dist/types/internal/test-environment/index.d.ts +1 -1
- package/dist/types/internal/timers/index.d.ts +1 -1
- package/dist/types/internal/typecheck/isolate-types.d.ts +2 -2
- package/package.json +8 -3
|
@@ -81,6 +81,7 @@ async function connect(options = {}) {
|
|
|
81
81
|
const state = {
|
|
82
82
|
socket,
|
|
83
83
|
pendingRequests: new Map,
|
|
84
|
+
pendingCallbackCalls: new Map,
|
|
84
85
|
callbacks: new Map,
|
|
85
86
|
callbacksNeedingRequestId: new Set,
|
|
86
87
|
nextRequestId: 1,
|
|
@@ -113,6 +114,10 @@ async function connect(options = {}) {
|
|
|
113
114
|
pending.reject(new Error("Connection closed"));
|
|
114
115
|
}
|
|
115
116
|
state.pendingRequests.clear();
|
|
117
|
+
for (const [, pending] of state.pendingCallbackCalls) {
|
|
118
|
+
pending.reject(new Error("Connection closed"));
|
|
119
|
+
}
|
|
120
|
+
state.pendingCallbackCalls.clear();
|
|
116
121
|
for (const [, receiver] of state.streamResponses) {
|
|
117
122
|
receiver.state = "errored";
|
|
118
123
|
receiver.error = new Error("Connection closed");
|
|
@@ -310,6 +315,24 @@ function handleMessage(message, state) {
|
|
|
310
315
|
handleCallbackInvoke(invoke, state);
|
|
311
316
|
break;
|
|
312
317
|
}
|
|
318
|
+
case import_protocol.MessageType.CALLBACK_RESPONSE: {
|
|
319
|
+
const response = message;
|
|
320
|
+
const pending = state.pendingCallbackCalls.get(response.requestId);
|
|
321
|
+
if (pending) {
|
|
322
|
+
state.pendingCallbackCalls.delete(response.requestId);
|
|
323
|
+
if (response.error) {
|
|
324
|
+
const error = new Error(response.error.message);
|
|
325
|
+
error.name = response.error.name;
|
|
326
|
+
if (response.error.stack) {
|
|
327
|
+
error.stack = response.error.stack;
|
|
328
|
+
}
|
|
329
|
+
pending.reject(error);
|
|
330
|
+
} else {
|
|
331
|
+
pending.resolve(response.result);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
break;
|
|
335
|
+
}
|
|
313
336
|
case import_protocol.MessageType.PONG:
|
|
314
337
|
break;
|
|
315
338
|
case import_protocol.MessageType.CALLBACK_STREAM_CANCEL: {
|
|
@@ -550,6 +573,27 @@ async function handleCallbackInvoke(invoke, state) {
|
|
|
550
573
|
}
|
|
551
574
|
}
|
|
552
575
|
}
|
|
576
|
+
function invokeDaemonCallback(state, callbackId, args) {
|
|
577
|
+
if (!state.connected) {
|
|
578
|
+
return Promise.reject(new Error("Not connected"));
|
|
579
|
+
}
|
|
580
|
+
const requestId = state.nextRequestId++;
|
|
581
|
+
const requestContext = import_request_context.getRequestContext();
|
|
582
|
+
const invoke = {
|
|
583
|
+
type: import_protocol.MessageType.CALLBACK_INVOKE,
|
|
584
|
+
requestId,
|
|
585
|
+
callbackId,
|
|
586
|
+
args,
|
|
587
|
+
context: requestContext ? {
|
|
588
|
+
requestId: requestContext.requestId,
|
|
589
|
+
metadata: requestContext.metadata
|
|
590
|
+
} : undefined
|
|
591
|
+
};
|
|
592
|
+
return new Promise((resolve, reject) => {
|
|
593
|
+
state.pendingCallbackCalls.set(requestId, { resolve, reject });
|
|
594
|
+
sendMessage(state.socket, invoke);
|
|
595
|
+
});
|
|
596
|
+
}
|
|
553
597
|
function sendMessage(socket, message) {
|
|
554
598
|
const frame = import_protocol.buildFrame(message);
|
|
555
599
|
socket.write(frame);
|
|
@@ -1416,13 +1460,141 @@ var returnedPromiseRegistry = new Map;
|
|
|
1416
1460
|
var returnedIteratorRegistry = new Map;
|
|
1417
1461
|
function registerCustomFunctions(state, customFunctions) {
|
|
1418
1462
|
const registrations = {};
|
|
1463
|
+
const addCallbackIdsToRefs = (value) => {
|
|
1464
|
+
if (value === null || typeof value !== "object") {
|
|
1465
|
+
return value;
|
|
1466
|
+
}
|
|
1467
|
+
if (import_protocol.isPromiseRef(value)) {
|
|
1468
|
+
const resolveCallbackId = state.nextCallbackId++;
|
|
1469
|
+
state.callbacks.set(resolveCallbackId, async (...args) => {
|
|
1470
|
+
const promiseId = args[0];
|
|
1471
|
+
const promise = returnedPromiseRegistry.get(promiseId);
|
|
1472
|
+
if (!promise) {
|
|
1473
|
+
throw new Error(`Promise ${promiseId} not found`);
|
|
1474
|
+
}
|
|
1475
|
+
const promiseResult = await promise;
|
|
1476
|
+
returnedPromiseRegistry.delete(promiseId);
|
|
1477
|
+
const marshalledResult = await import_protocol.marshalValue(promiseResult, marshalCtx);
|
|
1478
|
+
return addCallbackIdsToRefs(marshalledResult);
|
|
1479
|
+
});
|
|
1480
|
+
return {
|
|
1481
|
+
...value,
|
|
1482
|
+
__resolveCallbackId: resolveCallbackId
|
|
1483
|
+
};
|
|
1484
|
+
}
|
|
1485
|
+
if (import_protocol.isAsyncIteratorRef(value)) {
|
|
1486
|
+
const nextCallbackId = state.nextCallbackId++;
|
|
1487
|
+
state.callbacks.set(nextCallbackId, async (...args) => {
|
|
1488
|
+
const iteratorId = args[0];
|
|
1489
|
+
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1490
|
+
if (!iterator) {
|
|
1491
|
+
throw new Error(`Iterator ${iteratorId} not found`);
|
|
1492
|
+
}
|
|
1493
|
+
const iterResult = await iterator.next();
|
|
1494
|
+
if (iterResult.done) {
|
|
1495
|
+
returnedIteratorRegistry.delete(iteratorId);
|
|
1496
|
+
}
|
|
1497
|
+
const marshalledValue = await import_protocol.marshalValue(iterResult.value, marshalCtx);
|
|
1498
|
+
return {
|
|
1499
|
+
done: iterResult.done,
|
|
1500
|
+
value: addCallbackIdsToRefs(marshalledValue)
|
|
1501
|
+
};
|
|
1502
|
+
});
|
|
1503
|
+
const returnCallbackId = state.nextCallbackId++;
|
|
1504
|
+
state.callbacks.set(returnCallbackId, async (...args) => {
|
|
1505
|
+
const iteratorId = args[0];
|
|
1506
|
+
const returnValue = args[1];
|
|
1507
|
+
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1508
|
+
returnedIteratorRegistry.delete(iteratorId);
|
|
1509
|
+
if (!iterator || !iterator.return) {
|
|
1510
|
+
return { done: true, value: undefined };
|
|
1511
|
+
}
|
|
1512
|
+
const iterResult = await iterator.return(returnValue);
|
|
1513
|
+
const marshalledValue = await import_protocol.marshalValue(iterResult.value, marshalCtx);
|
|
1514
|
+
return {
|
|
1515
|
+
done: true,
|
|
1516
|
+
value: addCallbackIdsToRefs(marshalledValue)
|
|
1517
|
+
};
|
|
1518
|
+
});
|
|
1519
|
+
const throwCallbackId = state.nextCallbackId++;
|
|
1520
|
+
state.callbacks.set(throwCallbackId, async (...args) => {
|
|
1521
|
+
const iteratorId = args[0];
|
|
1522
|
+
const errorValue = args[1];
|
|
1523
|
+
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1524
|
+
if (!iterator) {
|
|
1525
|
+
throw new Error(`Iterator ${iteratorId} not found`);
|
|
1526
|
+
}
|
|
1527
|
+
try {
|
|
1528
|
+
if (!iterator.throw) {
|
|
1529
|
+
throw Object.assign(new Error(errorValue?.message ?? "Iterator does not support throw()"), { name: errorValue?.name ?? "Error", stack: errorValue?.stack });
|
|
1530
|
+
}
|
|
1531
|
+
const thrownError = Object.assign(new Error(errorValue?.message ?? "Iterator throw()"), { name: errorValue?.name ?? "Error", stack: errorValue?.stack });
|
|
1532
|
+
const iterResult = await iterator.throw(thrownError);
|
|
1533
|
+
if (iterResult.done) {
|
|
1534
|
+
returnedIteratorRegistry.delete(iteratorId);
|
|
1535
|
+
}
|
|
1536
|
+
const marshalledValue = await import_protocol.marshalValue(iterResult.value, marshalCtx);
|
|
1537
|
+
return {
|
|
1538
|
+
done: iterResult.done,
|
|
1539
|
+
value: addCallbackIdsToRefs(marshalledValue)
|
|
1540
|
+
};
|
|
1541
|
+
} catch (error) {
|
|
1542
|
+
returnedIteratorRegistry.delete(iteratorId);
|
|
1543
|
+
throw error;
|
|
1544
|
+
}
|
|
1545
|
+
});
|
|
1546
|
+
return {
|
|
1547
|
+
...value,
|
|
1548
|
+
__nextCallbackId: nextCallbackId,
|
|
1549
|
+
__returnCallbackId: returnCallbackId,
|
|
1550
|
+
__throwCallbackId: throwCallbackId
|
|
1551
|
+
};
|
|
1552
|
+
}
|
|
1553
|
+
if (Array.isArray(value)) {
|
|
1554
|
+
return value.map((item) => addCallbackIdsToRefs(item));
|
|
1555
|
+
}
|
|
1556
|
+
const objResult = {};
|
|
1557
|
+
for (const key of Object.keys(value)) {
|
|
1558
|
+
objResult[key] = addCallbackIdsToRefs(value[key]);
|
|
1559
|
+
}
|
|
1560
|
+
return objResult;
|
|
1561
|
+
};
|
|
1562
|
+
const marshalCtx = {
|
|
1563
|
+
registerCallback: (fn) => {
|
|
1564
|
+
const returnedCallbackId = state.nextCallbackId++;
|
|
1565
|
+
state.callbacks.set(returnedCallbackId, async (...args) => {
|
|
1566
|
+
const fnResult = await fn(...args);
|
|
1567
|
+
const marshalledResult = await import_protocol.marshalValue(fnResult, marshalCtx);
|
|
1568
|
+
return addCallbackIdsToRefs(marshalledResult);
|
|
1569
|
+
});
|
|
1570
|
+
return returnedCallbackId;
|
|
1571
|
+
},
|
|
1572
|
+
registerPromise: (promise) => {
|
|
1573
|
+
const promiseId = state.nextCallbackId++;
|
|
1574
|
+
returnedPromiseRegistry.set(promiseId, promise);
|
|
1575
|
+
return promiseId;
|
|
1576
|
+
},
|
|
1577
|
+
registerIterator: (iterator) => {
|
|
1578
|
+
const iteratorId = state.nextCallbackId++;
|
|
1579
|
+
returnedIteratorRegistry.set(iteratorId, iterator);
|
|
1580
|
+
return iteratorId;
|
|
1581
|
+
}
|
|
1582
|
+
};
|
|
1583
|
+
const unmarshalCtx = {};
|
|
1584
|
+
unmarshalCtx.getCallback = (callbackId) => {
|
|
1585
|
+
return async (...args) => {
|
|
1586
|
+
const marshalledArgs = await import_protocol.marshalValue(args, marshalCtx);
|
|
1587
|
+
const result = await invokeDaemonCallback(state, callbackId, addCallbackIdsToRefs(marshalledArgs));
|
|
1588
|
+
return import_protocol.unmarshalValue(result, unmarshalCtx);
|
|
1589
|
+
};
|
|
1590
|
+
};
|
|
1419
1591
|
for (const [name, def] of Object.entries(customFunctions)) {
|
|
1420
1592
|
if (def.type === "asyncIterator") {
|
|
1421
1593
|
const startCallbackId = state.nextCallbackId++;
|
|
1422
1594
|
state.callbacks.set(startCallbackId, async (...args) => {
|
|
1423
1595
|
try {
|
|
1424
1596
|
const fn = def.fn;
|
|
1425
|
-
const iterator = fn(...args);
|
|
1597
|
+
const iterator = fn(...import_protocol.unmarshalValue(args, unmarshalCtx));
|
|
1426
1598
|
const iteratorId = nextClientIteratorId++;
|
|
1427
1599
|
clientIteratorSessions.set(iteratorId, { iterator });
|
|
1428
1600
|
return { iteratorId };
|
|
@@ -1491,127 +1663,7 @@ function registerCustomFunctions(state, customFunctions) {
|
|
|
1491
1663
|
} else {
|
|
1492
1664
|
const callbackId = state.nextCallbackId++;
|
|
1493
1665
|
state.callbacks.set(callbackId, async (...args) => {
|
|
1494
|
-
const result = await def.fn(...args);
|
|
1495
|
-
const addCallbackIdsToRefs = (value) => {
|
|
1496
|
-
if (value === null || typeof value !== "object") {
|
|
1497
|
-
return value;
|
|
1498
|
-
}
|
|
1499
|
-
if (import_protocol.isPromiseRef(value)) {
|
|
1500
|
-
const resolveCallbackId = state.nextCallbackId++;
|
|
1501
|
-
state.callbacks.set(resolveCallbackId, async (...args2) => {
|
|
1502
|
-
const promiseId = args2[0];
|
|
1503
|
-
const promise = returnedPromiseRegistry.get(promiseId);
|
|
1504
|
-
if (!promise) {
|
|
1505
|
-
throw new Error(`Promise ${promiseId} not found`);
|
|
1506
|
-
}
|
|
1507
|
-
const promiseResult = await promise;
|
|
1508
|
-
returnedPromiseRegistry.delete(promiseId);
|
|
1509
|
-
const marshalledResult = await import_protocol.marshalValue(promiseResult, marshalCtx);
|
|
1510
|
-
return addCallbackIdsToRefs(marshalledResult);
|
|
1511
|
-
});
|
|
1512
|
-
return {
|
|
1513
|
-
...value,
|
|
1514
|
-
__resolveCallbackId: resolveCallbackId
|
|
1515
|
-
};
|
|
1516
|
-
}
|
|
1517
|
-
if (import_protocol.isAsyncIteratorRef(value)) {
|
|
1518
|
-
const nextCallbackId = state.nextCallbackId++;
|
|
1519
|
-
state.callbacks.set(nextCallbackId, async (...args2) => {
|
|
1520
|
-
const iteratorId = args2[0];
|
|
1521
|
-
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1522
|
-
if (!iterator) {
|
|
1523
|
-
throw new Error(`Iterator ${iteratorId} not found`);
|
|
1524
|
-
}
|
|
1525
|
-
const iterResult = await iterator.next();
|
|
1526
|
-
if (iterResult.done) {
|
|
1527
|
-
returnedIteratorRegistry.delete(iteratorId);
|
|
1528
|
-
}
|
|
1529
|
-
const marshalledValue = await import_protocol.marshalValue(iterResult.value, marshalCtx);
|
|
1530
|
-
return {
|
|
1531
|
-
done: iterResult.done,
|
|
1532
|
-
value: addCallbackIdsToRefs(marshalledValue)
|
|
1533
|
-
};
|
|
1534
|
-
});
|
|
1535
|
-
const returnCallbackId = state.nextCallbackId++;
|
|
1536
|
-
state.callbacks.set(returnCallbackId, async (...args2) => {
|
|
1537
|
-
const iteratorId = args2[0];
|
|
1538
|
-
const returnValue = args2[1];
|
|
1539
|
-
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1540
|
-
returnedIteratorRegistry.delete(iteratorId);
|
|
1541
|
-
if (!iterator || !iterator.return) {
|
|
1542
|
-
return { done: true, value: undefined };
|
|
1543
|
-
}
|
|
1544
|
-
const iterResult = await iterator.return(returnValue);
|
|
1545
|
-
const marshalledValue = await import_protocol.marshalValue(iterResult.value, marshalCtx);
|
|
1546
|
-
return {
|
|
1547
|
-
done: true,
|
|
1548
|
-
value: addCallbackIdsToRefs(marshalledValue)
|
|
1549
|
-
};
|
|
1550
|
-
});
|
|
1551
|
-
const throwCallbackId = state.nextCallbackId++;
|
|
1552
|
-
state.callbacks.set(throwCallbackId, async (...args2) => {
|
|
1553
|
-
const iteratorId = args2[0];
|
|
1554
|
-
const errorValue = args2[1];
|
|
1555
|
-
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1556
|
-
if (!iterator) {
|
|
1557
|
-
throw new Error(`Iterator ${iteratorId} not found`);
|
|
1558
|
-
}
|
|
1559
|
-
try {
|
|
1560
|
-
if (!iterator.throw) {
|
|
1561
|
-
throw Object.assign(new Error(errorValue?.message ?? "Iterator does not support throw()"), { name: errorValue?.name ?? "Error", stack: errorValue?.stack });
|
|
1562
|
-
}
|
|
1563
|
-
const thrownError = Object.assign(new Error(errorValue?.message ?? "Iterator throw()"), { name: errorValue?.name ?? "Error", stack: errorValue?.stack });
|
|
1564
|
-
const iterResult = await iterator.throw(thrownError);
|
|
1565
|
-
if (iterResult.done) {
|
|
1566
|
-
returnedIteratorRegistry.delete(iteratorId);
|
|
1567
|
-
}
|
|
1568
|
-
const marshalledValue = await import_protocol.marshalValue(iterResult.value, marshalCtx);
|
|
1569
|
-
return {
|
|
1570
|
-
done: iterResult.done,
|
|
1571
|
-
value: addCallbackIdsToRefs(marshalledValue)
|
|
1572
|
-
};
|
|
1573
|
-
} catch (error) {
|
|
1574
|
-
returnedIteratorRegistry.delete(iteratorId);
|
|
1575
|
-
throw error;
|
|
1576
|
-
}
|
|
1577
|
-
});
|
|
1578
|
-
return {
|
|
1579
|
-
...value,
|
|
1580
|
-
__nextCallbackId: nextCallbackId,
|
|
1581
|
-
__returnCallbackId: returnCallbackId,
|
|
1582
|
-
__throwCallbackId: throwCallbackId
|
|
1583
|
-
};
|
|
1584
|
-
}
|
|
1585
|
-
if (Array.isArray(value)) {
|
|
1586
|
-
return value.map((item) => addCallbackIdsToRefs(item));
|
|
1587
|
-
}
|
|
1588
|
-
const objResult = {};
|
|
1589
|
-
for (const key of Object.keys(value)) {
|
|
1590
|
-
objResult[key] = addCallbackIdsToRefs(value[key]);
|
|
1591
|
-
}
|
|
1592
|
-
return objResult;
|
|
1593
|
-
};
|
|
1594
|
-
const marshalCtx = {
|
|
1595
|
-
registerCallback: (fn) => {
|
|
1596
|
-
const returnedCallbackId = state.nextCallbackId++;
|
|
1597
|
-
state.callbacks.set(returnedCallbackId, async (...args2) => {
|
|
1598
|
-
const fnResult = await fn(...args2);
|
|
1599
|
-
const marshalledResult = await import_protocol.marshalValue(fnResult, marshalCtx);
|
|
1600
|
-
return addCallbackIdsToRefs(marshalledResult);
|
|
1601
|
-
});
|
|
1602
|
-
return returnedCallbackId;
|
|
1603
|
-
},
|
|
1604
|
-
registerPromise: (promise) => {
|
|
1605
|
-
const promiseId = state.nextCallbackId++;
|
|
1606
|
-
returnedPromiseRegistry.set(promiseId, promise);
|
|
1607
|
-
return promiseId;
|
|
1608
|
-
},
|
|
1609
|
-
registerIterator: (iterator) => {
|
|
1610
|
-
const iteratorId = state.nextCallbackId++;
|
|
1611
|
-
returnedIteratorRegistry.set(iteratorId, iterator);
|
|
1612
|
-
return iteratorId;
|
|
1613
|
-
}
|
|
1614
|
-
};
|
|
1666
|
+
const result = await def.fn(...import_protocol.unmarshalValue(args, unmarshalCtx));
|
|
1615
1667
|
const marshalled = await import_protocol.marshalValue(result, marshalCtx);
|
|
1616
1668
|
const withCallbackIds = addCallbackIdsToRefs(marshalled);
|
|
1617
1669
|
return withCallbackIds;
|
|
@@ -1916,4 +1968,4 @@ function handleClientWsClose(isolateId, payload, state) {
|
|
|
1916
1968
|
}
|
|
1917
1969
|
}
|
|
1918
1970
|
|
|
1919
|
-
//# debugId=
|
|
1971
|
+
//# debugId=6EEF0F611807A4E264756E2164756E21
|