@lvce-editor/renderer-process 30.68.15 → 30.68.16

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.
@@ -1464,20 +1464,32 @@ const createClient = url => {
1464
1464
  const commandMapRef = {};
1465
1465
 
1466
1466
  const workers$1 = new Map();
1467
+ const metadataById = new Map();
1467
1468
  const state$n = {
1468
1469
  generation: 0,
1469
1470
  nextId: 0
1470
1471
  };
1471
1472
  const getGeneration = () => state$n.generation;
1472
- const createRuntimeName = name => {
1473
+ const createRuntimeName = (name, parentName) => {
1473
1474
  state$n.nextId++;
1474
1475
  const id = `worker-${state$n.nextId}`;
1475
1476
  const runtimeId = `worker-${String(state$n.nextId).padStart(2, '0')}`;
1476
- return {
1477
+ let parent;
1478
+ if (parentName) {
1479
+ parent = metadataById.values().find(worker => worker.name === parentName);
1480
+ } else if (name !== 'Renderer Worker') {
1481
+ parent = metadataById.values().find(worker => worker.name === 'Renderer Worker');
1482
+ }
1483
+ const metadata = {
1477
1484
  id,
1478
1485
  name,
1486
+ ...(parent && {
1487
+ parentId: parent.id
1488
+ }),
1479
1489
  runtimeName: `[${runtimeId}] ${name}`
1480
1490
  };
1491
+ metadataById.set(id, metadata);
1492
+ return metadata;
1481
1493
  };
1482
1494
  const track = (worker, startedIn = state$n.generation, trackedWorker) => {
1483
1495
  if (startedIn !== state$n.generation) {
@@ -1488,10 +1500,16 @@ const track = (worker, startedIn = state$n.generation, trackedWorker) => {
1488
1500
  return;
1489
1501
  }
1490
1502
  const metadata = trackedWorker || createRuntimeName(worker.name || 'Worker');
1503
+ metadataById.set(metadata.id, metadata);
1491
1504
  workers$1.set(worker, metadata);
1492
1505
  };
1493
1506
  const remove$5 = worker => {
1507
+ const metadata = workers$1.get(worker);
1494
1508
  workers$1.delete(worker);
1509
+ if (metadata) metadataById.delete(metadata.id);
1510
+ };
1511
+ const discard = metadata => {
1512
+ metadataById.delete(metadata.id);
1495
1513
  };
1496
1514
  const terminate$1 = id => {
1497
1515
  for (const [worker, metadata] of workers$1) {
@@ -1500,6 +1518,7 @@ const terminate$1 = id => {
1500
1518
  // that requested termination and refresh the list.
1501
1519
  if (metadata.name === 'Workers View Worker') return false;
1502
1520
  workers$1.delete(worker);
1521
+ metadataById.delete(metadata.id);
1503
1522
  worker.terminate();
1504
1523
  return true;
1505
1524
  }
@@ -1510,6 +1529,7 @@ const terminateAll = () => {
1510
1529
  state$n.generation++;
1511
1530
  const retiring = workers$1.keys().toArray();
1512
1531
  workers$1.clear();
1532
+ metadataById.clear();
1513
1533
  for (const worker of retiring) {
1514
1534
  worker.terminate();
1515
1535
  }
@@ -1550,6 +1570,7 @@ const launchWorker = async ({
1550
1570
  trackRpc(rpc, generation, trackedWorker);
1551
1571
  return success(rpc);
1552
1572
  } catch (error) {
1573
+ discard(trackedWorker);
1553
1574
  return error$1(error);
1554
1575
  }
1555
1576
  };
@@ -4490,23 +4511,30 @@ const clear$2 = () => {
4490
4511
  const create$w = async ({
4491
4512
  id,
4492
4513
  name,
4514
+ parentName,
4493
4515
  port,
4494
4516
  raw,
4495
4517
  rpcId,
4496
4518
  url
4497
4519
  }, createTransferredRpc = create$C, createNativeRpc = create$D) => {
4498
4520
  const generation = getGeneration();
4499
- const trackedWorker = createRuntimeName(name || 'Worker');
4500
- const rpc = await (rpcId === undefined ? createTransferredRpc({
4501
- commandMap: {},
4502
- name: trackedWorker.runtimeName,
4503
- port,
4504
- url
4505
- }) : createNativeRpc({
4506
- commandMap: {},
4507
- name: trackedWorker.runtimeName,
4508
- url
4509
- }));
4521
+ const trackedWorker = createRuntimeName(name || 'Worker', parentName);
4522
+ let rpc;
4523
+ try {
4524
+ rpc = await (rpcId === undefined ? createTransferredRpc({
4525
+ commandMap: {},
4526
+ name: trackedWorker.runtimeName,
4527
+ port,
4528
+ url
4529
+ }) : createNativeRpc({
4530
+ commandMap: {},
4531
+ name: trackedWorker.runtimeName,
4532
+ url
4533
+ }));
4534
+ } catch (error) {
4535
+ discard(trackedWorker);
4536
+ throw error;
4537
+ }
4510
4538
  if (rpcId !== undefined) {
4511
4539
  await rpc.invokeAndTransfer('initialize', 'message-port', port);
4512
4540
  registerRpc(rpcId, rpc);
@@ -4514,6 +4542,8 @@ const create$w = async ({
4514
4542
  const worker = rpc.ipc?._rawIpc;
4515
4543
  if (worker) {
4516
4544
  track(worker, generation, trackedWorker);
4545
+ } else {
4546
+ discard(trackedWorker);
4517
4547
  }
4518
4548
  if (typeof id === 'number' && raw && worker) {
4519
4549
  set$7(id, worker);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/renderer-process",
3
- "version": "30.68.15",
3
+ "version": "30.68.16",
4
4
  "keywords": [
5
5
  "lvce-editor",
6
6
  "renderer-process"