@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
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
IsolateEvents,
|
|
13
13
|
ClientEvents,
|
|
14
14
|
marshalValue,
|
|
15
|
+
unmarshalValue,
|
|
15
16
|
isPromiseRef,
|
|
16
17
|
isAsyncIteratorRef,
|
|
17
18
|
serializeResponse,
|
|
@@ -30,6 +31,7 @@ async function connect(options = {}) {
|
|
|
30
31
|
const state = {
|
|
31
32
|
socket,
|
|
32
33
|
pendingRequests: new Map,
|
|
34
|
+
pendingCallbackCalls: new Map,
|
|
33
35
|
callbacks: new Map,
|
|
34
36
|
callbacksNeedingRequestId: new Set,
|
|
35
37
|
nextRequestId: 1,
|
|
@@ -62,6 +64,10 @@ async function connect(options = {}) {
|
|
|
62
64
|
pending.reject(new Error("Connection closed"));
|
|
63
65
|
}
|
|
64
66
|
state.pendingRequests.clear();
|
|
67
|
+
for (const [, pending] of state.pendingCallbackCalls) {
|
|
68
|
+
pending.reject(new Error("Connection closed"));
|
|
69
|
+
}
|
|
70
|
+
state.pendingCallbackCalls.clear();
|
|
65
71
|
for (const [, receiver] of state.streamResponses) {
|
|
66
72
|
receiver.state = "errored";
|
|
67
73
|
receiver.error = new Error("Connection closed");
|
|
@@ -259,6 +265,24 @@ function handleMessage(message, state) {
|
|
|
259
265
|
handleCallbackInvoke(invoke, state);
|
|
260
266
|
break;
|
|
261
267
|
}
|
|
268
|
+
case MessageType.CALLBACK_RESPONSE: {
|
|
269
|
+
const response = message;
|
|
270
|
+
const pending = state.pendingCallbackCalls.get(response.requestId);
|
|
271
|
+
if (pending) {
|
|
272
|
+
state.pendingCallbackCalls.delete(response.requestId);
|
|
273
|
+
if (response.error) {
|
|
274
|
+
const error = new Error(response.error.message);
|
|
275
|
+
error.name = response.error.name;
|
|
276
|
+
if (response.error.stack) {
|
|
277
|
+
error.stack = response.error.stack;
|
|
278
|
+
}
|
|
279
|
+
pending.reject(error);
|
|
280
|
+
} else {
|
|
281
|
+
pending.resolve(response.result);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
262
286
|
case MessageType.PONG:
|
|
263
287
|
break;
|
|
264
288
|
case MessageType.CALLBACK_STREAM_CANCEL: {
|
|
@@ -499,6 +523,27 @@ async function handleCallbackInvoke(invoke, state) {
|
|
|
499
523
|
}
|
|
500
524
|
}
|
|
501
525
|
}
|
|
526
|
+
function invokeDaemonCallback(state, callbackId, args) {
|
|
527
|
+
if (!state.connected) {
|
|
528
|
+
return Promise.reject(new Error("Not connected"));
|
|
529
|
+
}
|
|
530
|
+
const requestId = state.nextRequestId++;
|
|
531
|
+
const requestContext = getRequestContext();
|
|
532
|
+
const invoke = {
|
|
533
|
+
type: MessageType.CALLBACK_INVOKE,
|
|
534
|
+
requestId,
|
|
535
|
+
callbackId,
|
|
536
|
+
args,
|
|
537
|
+
context: requestContext ? {
|
|
538
|
+
requestId: requestContext.requestId,
|
|
539
|
+
metadata: requestContext.metadata
|
|
540
|
+
} : undefined
|
|
541
|
+
};
|
|
542
|
+
return new Promise((resolve, reject) => {
|
|
543
|
+
state.pendingCallbackCalls.set(requestId, { resolve, reject });
|
|
544
|
+
sendMessage(state.socket, invoke);
|
|
545
|
+
});
|
|
546
|
+
}
|
|
502
547
|
function sendMessage(socket, message) {
|
|
503
548
|
const frame = buildFrame(message);
|
|
504
549
|
socket.write(frame);
|
|
@@ -1365,13 +1410,141 @@ var returnedPromiseRegistry = new Map;
|
|
|
1365
1410
|
var returnedIteratorRegistry = new Map;
|
|
1366
1411
|
function registerCustomFunctions(state, customFunctions) {
|
|
1367
1412
|
const registrations = {};
|
|
1413
|
+
const addCallbackIdsToRefs = (value) => {
|
|
1414
|
+
if (value === null || typeof value !== "object") {
|
|
1415
|
+
return value;
|
|
1416
|
+
}
|
|
1417
|
+
if (isPromiseRef(value)) {
|
|
1418
|
+
const resolveCallbackId = state.nextCallbackId++;
|
|
1419
|
+
state.callbacks.set(resolveCallbackId, async (...args) => {
|
|
1420
|
+
const promiseId = args[0];
|
|
1421
|
+
const promise = returnedPromiseRegistry.get(promiseId);
|
|
1422
|
+
if (!promise) {
|
|
1423
|
+
throw new Error(`Promise ${promiseId} not found`);
|
|
1424
|
+
}
|
|
1425
|
+
const promiseResult = await promise;
|
|
1426
|
+
returnedPromiseRegistry.delete(promiseId);
|
|
1427
|
+
const marshalledResult = await marshalValue(promiseResult, marshalCtx);
|
|
1428
|
+
return addCallbackIdsToRefs(marshalledResult);
|
|
1429
|
+
});
|
|
1430
|
+
return {
|
|
1431
|
+
...value,
|
|
1432
|
+
__resolveCallbackId: resolveCallbackId
|
|
1433
|
+
};
|
|
1434
|
+
}
|
|
1435
|
+
if (isAsyncIteratorRef(value)) {
|
|
1436
|
+
const nextCallbackId = state.nextCallbackId++;
|
|
1437
|
+
state.callbacks.set(nextCallbackId, async (...args) => {
|
|
1438
|
+
const iteratorId = args[0];
|
|
1439
|
+
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1440
|
+
if (!iterator) {
|
|
1441
|
+
throw new Error(`Iterator ${iteratorId} not found`);
|
|
1442
|
+
}
|
|
1443
|
+
const iterResult = await iterator.next();
|
|
1444
|
+
if (iterResult.done) {
|
|
1445
|
+
returnedIteratorRegistry.delete(iteratorId);
|
|
1446
|
+
}
|
|
1447
|
+
const marshalledValue = await marshalValue(iterResult.value, marshalCtx);
|
|
1448
|
+
return {
|
|
1449
|
+
done: iterResult.done,
|
|
1450
|
+
value: addCallbackIdsToRefs(marshalledValue)
|
|
1451
|
+
};
|
|
1452
|
+
});
|
|
1453
|
+
const returnCallbackId = state.nextCallbackId++;
|
|
1454
|
+
state.callbacks.set(returnCallbackId, async (...args) => {
|
|
1455
|
+
const iteratorId = args[0];
|
|
1456
|
+
const returnValue = args[1];
|
|
1457
|
+
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1458
|
+
returnedIteratorRegistry.delete(iteratorId);
|
|
1459
|
+
if (!iterator || !iterator.return) {
|
|
1460
|
+
return { done: true, value: undefined };
|
|
1461
|
+
}
|
|
1462
|
+
const iterResult = await iterator.return(returnValue);
|
|
1463
|
+
const marshalledValue = await marshalValue(iterResult.value, marshalCtx);
|
|
1464
|
+
return {
|
|
1465
|
+
done: true,
|
|
1466
|
+
value: addCallbackIdsToRefs(marshalledValue)
|
|
1467
|
+
};
|
|
1468
|
+
});
|
|
1469
|
+
const throwCallbackId = state.nextCallbackId++;
|
|
1470
|
+
state.callbacks.set(throwCallbackId, async (...args) => {
|
|
1471
|
+
const iteratorId = args[0];
|
|
1472
|
+
const errorValue = args[1];
|
|
1473
|
+
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1474
|
+
if (!iterator) {
|
|
1475
|
+
throw new Error(`Iterator ${iteratorId} not found`);
|
|
1476
|
+
}
|
|
1477
|
+
try {
|
|
1478
|
+
if (!iterator.throw) {
|
|
1479
|
+
throw Object.assign(new Error(errorValue?.message ?? "Iterator does not support throw()"), { name: errorValue?.name ?? "Error", stack: errorValue?.stack });
|
|
1480
|
+
}
|
|
1481
|
+
const thrownError = Object.assign(new Error(errorValue?.message ?? "Iterator throw()"), { name: errorValue?.name ?? "Error", stack: errorValue?.stack });
|
|
1482
|
+
const iterResult = await iterator.throw(thrownError);
|
|
1483
|
+
if (iterResult.done) {
|
|
1484
|
+
returnedIteratorRegistry.delete(iteratorId);
|
|
1485
|
+
}
|
|
1486
|
+
const marshalledValue = await marshalValue(iterResult.value, marshalCtx);
|
|
1487
|
+
return {
|
|
1488
|
+
done: iterResult.done,
|
|
1489
|
+
value: addCallbackIdsToRefs(marshalledValue)
|
|
1490
|
+
};
|
|
1491
|
+
} catch (error) {
|
|
1492
|
+
returnedIteratorRegistry.delete(iteratorId);
|
|
1493
|
+
throw error;
|
|
1494
|
+
}
|
|
1495
|
+
});
|
|
1496
|
+
return {
|
|
1497
|
+
...value,
|
|
1498
|
+
__nextCallbackId: nextCallbackId,
|
|
1499
|
+
__returnCallbackId: returnCallbackId,
|
|
1500
|
+
__throwCallbackId: throwCallbackId
|
|
1501
|
+
};
|
|
1502
|
+
}
|
|
1503
|
+
if (Array.isArray(value)) {
|
|
1504
|
+
return value.map((item) => addCallbackIdsToRefs(item));
|
|
1505
|
+
}
|
|
1506
|
+
const objResult = {};
|
|
1507
|
+
for (const key of Object.keys(value)) {
|
|
1508
|
+
objResult[key] = addCallbackIdsToRefs(value[key]);
|
|
1509
|
+
}
|
|
1510
|
+
return objResult;
|
|
1511
|
+
};
|
|
1512
|
+
const marshalCtx = {
|
|
1513
|
+
registerCallback: (fn) => {
|
|
1514
|
+
const returnedCallbackId = state.nextCallbackId++;
|
|
1515
|
+
state.callbacks.set(returnedCallbackId, async (...args) => {
|
|
1516
|
+
const fnResult = await fn(...args);
|
|
1517
|
+
const marshalledResult = await marshalValue(fnResult, marshalCtx);
|
|
1518
|
+
return addCallbackIdsToRefs(marshalledResult);
|
|
1519
|
+
});
|
|
1520
|
+
return returnedCallbackId;
|
|
1521
|
+
},
|
|
1522
|
+
registerPromise: (promise) => {
|
|
1523
|
+
const promiseId = state.nextCallbackId++;
|
|
1524
|
+
returnedPromiseRegistry.set(promiseId, promise);
|
|
1525
|
+
return promiseId;
|
|
1526
|
+
},
|
|
1527
|
+
registerIterator: (iterator) => {
|
|
1528
|
+
const iteratorId = state.nextCallbackId++;
|
|
1529
|
+
returnedIteratorRegistry.set(iteratorId, iterator);
|
|
1530
|
+
return iteratorId;
|
|
1531
|
+
}
|
|
1532
|
+
};
|
|
1533
|
+
const unmarshalCtx = {};
|
|
1534
|
+
unmarshalCtx.getCallback = (callbackId) => {
|
|
1535
|
+
return async (...args) => {
|
|
1536
|
+
const marshalledArgs = await marshalValue(args, marshalCtx);
|
|
1537
|
+
const result = await invokeDaemonCallback(state, callbackId, addCallbackIdsToRefs(marshalledArgs));
|
|
1538
|
+
return unmarshalValue(result, unmarshalCtx);
|
|
1539
|
+
};
|
|
1540
|
+
};
|
|
1368
1541
|
for (const [name, def] of Object.entries(customFunctions)) {
|
|
1369
1542
|
if (def.type === "asyncIterator") {
|
|
1370
1543
|
const startCallbackId = state.nextCallbackId++;
|
|
1371
1544
|
state.callbacks.set(startCallbackId, async (...args) => {
|
|
1372
1545
|
try {
|
|
1373
1546
|
const fn = def.fn;
|
|
1374
|
-
const iterator = fn(...args);
|
|
1547
|
+
const iterator = fn(...unmarshalValue(args, unmarshalCtx));
|
|
1375
1548
|
const iteratorId = nextClientIteratorId++;
|
|
1376
1549
|
clientIteratorSessions.set(iteratorId, { iterator });
|
|
1377
1550
|
return { iteratorId };
|
|
@@ -1440,127 +1613,7 @@ function registerCustomFunctions(state, customFunctions) {
|
|
|
1440
1613
|
} else {
|
|
1441
1614
|
const callbackId = state.nextCallbackId++;
|
|
1442
1615
|
state.callbacks.set(callbackId, async (...args) => {
|
|
1443
|
-
const result = await def.fn(...args);
|
|
1444
|
-
const addCallbackIdsToRefs = (value) => {
|
|
1445
|
-
if (value === null || typeof value !== "object") {
|
|
1446
|
-
return value;
|
|
1447
|
-
}
|
|
1448
|
-
if (isPromiseRef(value)) {
|
|
1449
|
-
const resolveCallbackId = state.nextCallbackId++;
|
|
1450
|
-
state.callbacks.set(resolveCallbackId, async (...args2) => {
|
|
1451
|
-
const promiseId = args2[0];
|
|
1452
|
-
const promise = returnedPromiseRegistry.get(promiseId);
|
|
1453
|
-
if (!promise) {
|
|
1454
|
-
throw new Error(`Promise ${promiseId} not found`);
|
|
1455
|
-
}
|
|
1456
|
-
const promiseResult = await promise;
|
|
1457
|
-
returnedPromiseRegistry.delete(promiseId);
|
|
1458
|
-
const marshalledResult = await marshalValue(promiseResult, marshalCtx);
|
|
1459
|
-
return addCallbackIdsToRefs(marshalledResult);
|
|
1460
|
-
});
|
|
1461
|
-
return {
|
|
1462
|
-
...value,
|
|
1463
|
-
__resolveCallbackId: resolveCallbackId
|
|
1464
|
-
};
|
|
1465
|
-
}
|
|
1466
|
-
if (isAsyncIteratorRef(value)) {
|
|
1467
|
-
const nextCallbackId = state.nextCallbackId++;
|
|
1468
|
-
state.callbacks.set(nextCallbackId, async (...args2) => {
|
|
1469
|
-
const iteratorId = args2[0];
|
|
1470
|
-
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1471
|
-
if (!iterator) {
|
|
1472
|
-
throw new Error(`Iterator ${iteratorId} not found`);
|
|
1473
|
-
}
|
|
1474
|
-
const iterResult = await iterator.next();
|
|
1475
|
-
if (iterResult.done) {
|
|
1476
|
-
returnedIteratorRegistry.delete(iteratorId);
|
|
1477
|
-
}
|
|
1478
|
-
const marshalledValue = await marshalValue(iterResult.value, marshalCtx);
|
|
1479
|
-
return {
|
|
1480
|
-
done: iterResult.done,
|
|
1481
|
-
value: addCallbackIdsToRefs(marshalledValue)
|
|
1482
|
-
};
|
|
1483
|
-
});
|
|
1484
|
-
const returnCallbackId = state.nextCallbackId++;
|
|
1485
|
-
state.callbacks.set(returnCallbackId, async (...args2) => {
|
|
1486
|
-
const iteratorId = args2[0];
|
|
1487
|
-
const returnValue = args2[1];
|
|
1488
|
-
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1489
|
-
returnedIteratorRegistry.delete(iteratorId);
|
|
1490
|
-
if (!iterator || !iterator.return) {
|
|
1491
|
-
return { done: true, value: undefined };
|
|
1492
|
-
}
|
|
1493
|
-
const iterResult = await iterator.return(returnValue);
|
|
1494
|
-
const marshalledValue = await marshalValue(iterResult.value, marshalCtx);
|
|
1495
|
-
return {
|
|
1496
|
-
done: true,
|
|
1497
|
-
value: addCallbackIdsToRefs(marshalledValue)
|
|
1498
|
-
};
|
|
1499
|
-
});
|
|
1500
|
-
const throwCallbackId = state.nextCallbackId++;
|
|
1501
|
-
state.callbacks.set(throwCallbackId, async (...args2) => {
|
|
1502
|
-
const iteratorId = args2[0];
|
|
1503
|
-
const errorValue = args2[1];
|
|
1504
|
-
const iterator = returnedIteratorRegistry.get(iteratorId);
|
|
1505
|
-
if (!iterator) {
|
|
1506
|
-
throw new Error(`Iterator ${iteratorId} not found`);
|
|
1507
|
-
}
|
|
1508
|
-
try {
|
|
1509
|
-
if (!iterator.throw) {
|
|
1510
|
-
throw Object.assign(new Error(errorValue?.message ?? "Iterator does not support throw()"), { name: errorValue?.name ?? "Error", stack: errorValue?.stack });
|
|
1511
|
-
}
|
|
1512
|
-
const thrownError = Object.assign(new Error(errorValue?.message ?? "Iterator throw()"), { name: errorValue?.name ?? "Error", stack: errorValue?.stack });
|
|
1513
|
-
const iterResult = await iterator.throw(thrownError);
|
|
1514
|
-
if (iterResult.done) {
|
|
1515
|
-
returnedIteratorRegistry.delete(iteratorId);
|
|
1516
|
-
}
|
|
1517
|
-
const marshalledValue = await marshalValue(iterResult.value, marshalCtx);
|
|
1518
|
-
return {
|
|
1519
|
-
done: iterResult.done,
|
|
1520
|
-
value: addCallbackIdsToRefs(marshalledValue)
|
|
1521
|
-
};
|
|
1522
|
-
} catch (error) {
|
|
1523
|
-
returnedIteratorRegistry.delete(iteratorId);
|
|
1524
|
-
throw error;
|
|
1525
|
-
}
|
|
1526
|
-
});
|
|
1527
|
-
return {
|
|
1528
|
-
...value,
|
|
1529
|
-
__nextCallbackId: nextCallbackId,
|
|
1530
|
-
__returnCallbackId: returnCallbackId,
|
|
1531
|
-
__throwCallbackId: throwCallbackId
|
|
1532
|
-
};
|
|
1533
|
-
}
|
|
1534
|
-
if (Array.isArray(value)) {
|
|
1535
|
-
return value.map((item) => addCallbackIdsToRefs(item));
|
|
1536
|
-
}
|
|
1537
|
-
const objResult = {};
|
|
1538
|
-
for (const key of Object.keys(value)) {
|
|
1539
|
-
objResult[key] = addCallbackIdsToRefs(value[key]);
|
|
1540
|
-
}
|
|
1541
|
-
return objResult;
|
|
1542
|
-
};
|
|
1543
|
-
const marshalCtx = {
|
|
1544
|
-
registerCallback: (fn) => {
|
|
1545
|
-
const returnedCallbackId = state.nextCallbackId++;
|
|
1546
|
-
state.callbacks.set(returnedCallbackId, async (...args2) => {
|
|
1547
|
-
const fnResult = await fn(...args2);
|
|
1548
|
-
const marshalledResult = await marshalValue(fnResult, marshalCtx);
|
|
1549
|
-
return addCallbackIdsToRefs(marshalledResult);
|
|
1550
|
-
});
|
|
1551
|
-
return returnedCallbackId;
|
|
1552
|
-
},
|
|
1553
|
-
registerPromise: (promise) => {
|
|
1554
|
-
const promiseId = state.nextCallbackId++;
|
|
1555
|
-
returnedPromiseRegistry.set(promiseId, promise);
|
|
1556
|
-
return promiseId;
|
|
1557
|
-
},
|
|
1558
|
-
registerIterator: (iterator) => {
|
|
1559
|
-
const iteratorId = state.nextCallbackId++;
|
|
1560
|
-
returnedIteratorRegistry.set(iteratorId, iterator);
|
|
1561
|
-
return iteratorId;
|
|
1562
|
-
}
|
|
1563
|
-
};
|
|
1616
|
+
const result = await def.fn(...unmarshalValue(args, unmarshalCtx));
|
|
1564
1617
|
const marshalled = await marshalValue(result, marshalCtx);
|
|
1565
1618
|
const withCallbackIds = addCallbackIdsToRefs(marshalled);
|
|
1566
1619
|
return withCallbackIds;
|
|
@@ -1869,4 +1922,4 @@ export {
|
|
|
1869
1922
|
connect
|
|
1870
1923
|
};
|
|
1871
1924
|
|
|
1872
|
-
//# debugId=
|
|
1925
|
+
//# debugId=2E442D60377D54C564756E2164756E21
|