@lvce-editor/renderer-process 30.64.3 → 30.64.5

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.
@@ -1463,32 +1463,47 @@ const createClient = url => {
1463
1463
 
1464
1464
  const commandMapRef = {};
1465
1465
 
1466
- const workers$1 = new Set();
1466
+ const workers$1 = new Map();
1467
1467
  const state$m = {
1468
- generation: 0
1468
+ generation: 0,
1469
+ nextId: 0
1469
1470
  };
1470
1471
  const getGeneration = () => state$m.generation;
1471
- const track = (worker, startedIn = state$m.generation) => {
1472
+ const createRuntimeName = name => {
1473
+ state$m.nextId++;
1474
+ const id = `worker-${state$m.nextId}`;
1475
+ return {
1476
+ id,
1477
+ name,
1478
+ runtimeName: `${name} [${id}]`
1479
+ };
1480
+ };
1481
+ const track = (worker, startedIn = state$m.generation, trackedWorker) => {
1472
1482
  if (startedIn !== state$m.generation) {
1473
1483
  worker.terminate();
1474
1484
  throw new Error('Worker launch canceled by application restart');
1475
1485
  }
1476
- workers$1.add(worker);
1486
+ if (workers$1.has(worker)) {
1487
+ return;
1488
+ }
1489
+ const metadata = trackedWorker || createRuntimeName(worker.name || 'Worker');
1490
+ workers$1.set(worker, metadata);
1477
1491
  };
1478
1492
  const remove$5 = worker => {
1479
1493
  workers$1.delete(worker);
1480
1494
  };
1495
+ const getWorkers$1 = () => workers$1.values().toArray();
1481
1496
  const terminateAll = () => {
1482
1497
  state$m.generation++;
1483
- const retiring = [...workers$1];
1498
+ const retiring = workers$1.keys().toArray();
1484
1499
  workers$1.clear();
1485
1500
  for (const worker of retiring) {
1486
1501
  worker.terminate();
1487
1502
  }
1488
1503
  };
1489
- const trackRpc = (rpc, generation) => {
1504
+ const trackRpc = (rpc, generation, trackedWorker) => {
1490
1505
  const worker = rpc.ipc?._rawIpc;
1491
- if (worker) track(worker, generation);
1506
+ if (worker) track(worker, generation, trackedWorker);
1492
1507
  };
1493
1508
 
1494
1509
  const success = value => {
@@ -1930,6 +1945,7 @@ const dragAndDropWorkerUrl = getConfiguredDragAndDropWorkerUrl() || `${assetDir}
1930
1945
 
1931
1946
  const launchDragAndDropWorker = async () => {
1932
1947
  const generation = getGeneration();
1948
+ const trackedWorker = createRuntimeName('Drag And Drop Worker');
1933
1949
  try {
1934
1950
  const {
1935
1951
  port1,
@@ -1937,11 +1953,11 @@ const launchDragAndDropWorker = async () => {
1937
1953
  } = new MessageChannel();
1938
1954
  const workerRpc = await create$C({
1939
1955
  commandMap: {},
1940
- name: 'Drag And Drop Worker',
1956
+ name: trackedWorker.runtimeName,
1941
1957
  port: port1,
1942
1958
  url: dragAndDropWorkerUrl
1943
1959
  });
1944
- trackRpc(workerRpc, generation);
1960
+ trackRpc(workerRpc, generation, trackedWorker);
1945
1961
  const rpc = await create$E({
1946
1962
  commandMap: commandMapRef,
1947
1963
  messagePort: port2
@@ -4227,28 +4243,37 @@ const create$z = async ({
4227
4243
  name,
4228
4244
  url
4229
4245
  }) => {
4246
+ const trackedWorker = createRuntimeName(getWorkerDisplayName(name));
4230
4247
  const worker = new Worker(url, {
4231
- name,
4248
+ name: trackedWorker.runtimeName,
4232
4249
  type: Module
4233
4250
  });
4234
- track(worker);
4235
- // @ts-expect-error
4236
- const {
4237
- event,
4238
- type
4239
- } = await getFirstWorkerEvent(worker);
4240
- switch (type) {
4241
- case Message:
4242
- if (event.data !== 'ready') {
4243
- throw new IpcError('unexpected first message from worker');
4244
- }
4245
- break;
4246
- case Error$3:
4247
- if (isErrorEvent(event)) {
4248
- throw new WorkerError(event);
4249
- }
4250
- const displayName = getWorkerDisplayName(name);
4251
- throw new IpcError(`Failed to start ${displayName}`);
4251
+ track(worker, undefined, trackedWorker);
4252
+ try {
4253
+ // @ts-expect-error
4254
+ const {
4255
+ event,
4256
+ type
4257
+ } = await getFirstWorkerEvent(worker);
4258
+ switch (type) {
4259
+ case Message:
4260
+ if (event.data !== 'ready') {
4261
+ throw new IpcError('unexpected first message from worker');
4262
+ }
4263
+ break;
4264
+ case Error$3:
4265
+ if (isErrorEvent(event)) {
4266
+ throw new WorkerError(event);
4267
+ }
4268
+ const displayName = getWorkerDisplayName(name);
4269
+ throw new IpcError(`Failed to start ${displayName}`);
4270
+ default:
4271
+ break;
4272
+ }
4273
+ } catch (error) {
4274
+ remove$5(worker);
4275
+ worker.terminate();
4276
+ throw error;
4252
4277
  }
4253
4278
  return worker;
4254
4279
  };
@@ -4368,14 +4393,15 @@ const create$w = async ({
4368
4393
  url
4369
4394
  }, createTransferredRpc = create$C, createNativeRpc = create$D) => {
4370
4395
  const generation = getGeneration();
4396
+ const trackedWorker = createRuntimeName(name || 'Worker');
4371
4397
  const rpc = await (rpcId === undefined ? createTransferredRpc({
4372
4398
  commandMap: {},
4373
- name,
4399
+ name: trackedWorker.runtimeName,
4374
4400
  port,
4375
4401
  url
4376
4402
  }) : createNativeRpc({
4377
4403
  commandMap: {},
4378
- name,
4404
+ name: trackedWorker.runtimeName,
4379
4405
  url
4380
4406
  }));
4381
4407
  if (rpcId !== undefined) {
@@ -4384,7 +4410,7 @@ const create$w = async ({
4384
4410
  }
4385
4411
  const worker = rpc.ipc?._rawIpc;
4386
4412
  if (worker) {
4387
- track(worker, generation);
4413
+ track(worker, generation, trackedWorker);
4388
4414
  }
4389
4415
  if (typeof id === 'number' && raw && worker) {
4390
4416
  set$7(id, worker);
@@ -11737,6 +11763,8 @@ const readMicLevels = options => {
11737
11763
  };
11738
11764
  };
11739
11765
 
11766
+ const getWorkers = getWorkers$1;
11767
+
11740
11768
  const commandMap = {
11741
11769
  'ApplicationHost.fileSaved': fileSaved,
11742
11770
  'Audio.play': play,
@@ -11877,6 +11905,7 @@ const commandMap = {
11877
11905
  'Window.unmaximize': unmaximize,
11878
11906
  'WindowTitle.set': set$1,
11879
11907
  'Workbench.setModernUi': setModernUi,
11908
+ 'Workers.getWorkers': getWorkers,
11880
11909
  'Workspace.setUri': setUri
11881
11910
  };
11882
11911
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/renderer-process",
3
- "version": "30.64.3",
3
+ "version": "30.64.5",
4
4
  "keywords": [
5
5
  "lvce-editor",
6
6
  "renderer-process"