@lvce-editor/file-system-process 4.0.0 → 4.1.0

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.
Files changed (2) hide show
  1. package/dist/index.js +67 -59
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -221,7 +221,7 @@ const MainProcess = -5;
221
221
  const SharedProcess$1 = 1492;
222
222
 
223
223
  const rpcs = Object.create(null);
224
- const set$1 = (id, rpc) => {
224
+ const set$2 = (id, rpc) => {
225
225
  rpcs[id] = rpc;
226
226
  };
227
227
  const get$1 = id => {
@@ -247,7 +247,7 @@ const create$3 = rpcId => {
247
247
  return rpc.invokeAndTransfer(method, ...params);
248
248
  },
249
249
  set(rpc) {
250
- set$1(rpcId, rpc);
250
+ set$2(rpcId, rpc);
251
251
  }
252
252
  };
253
253
  };
@@ -1368,6 +1368,36 @@ const ElectronUtilityProcessRpcClient = {
1368
1368
  __proto__: null,
1369
1369
  create: create$o
1370
1370
  };
1371
+
1372
+ /* eslint-disable @typescript-eslint/no-misused-promises */
1373
+
1374
+ const createSharedLazyRpc = factory => {
1375
+ let rpcPromise;
1376
+ const getOrCreate = () => {
1377
+ if (!rpcPromise) {
1378
+ rpcPromise = factory();
1379
+ }
1380
+ return rpcPromise;
1381
+ };
1382
+ return {
1383
+ async dispose() {
1384
+ const rpc = await getOrCreate();
1385
+ await rpc.dispose();
1386
+ },
1387
+ async invoke(method, ...params) {
1388
+ const rpc = await getOrCreate();
1389
+ return rpc.invoke(method, ...params);
1390
+ },
1391
+ async invokeAndTransfer(method, ...params) {
1392
+ const rpc = await getOrCreate();
1393
+ return rpc.invokeAndTransfer(method, ...params);
1394
+ },
1395
+ async send(method, ...params) {
1396
+ const rpc = await getOrCreate();
1397
+ rpc.send(method, ...params);
1398
+ }
1399
+ };
1400
+ };
1371
1401
  const create$k = async ({
1372
1402
  commandMap,
1373
1403
  getPortTuple,
@@ -1384,9 +1414,22 @@ const create$k = async ({
1384
1414
  });
1385
1415
  return rpc;
1386
1416
  };
1387
- const TransferElectronMessagePortRpc = {
1417
+ const create$j = async ({
1418
+ commandMap,
1419
+ getPortTuple,
1420
+ send
1421
+ }) => {
1422
+ return createSharedLazyRpc(() => {
1423
+ return create$k({
1424
+ commandMap,
1425
+ getPortTuple,
1426
+ send
1427
+ });
1428
+ });
1429
+ };
1430
+ const LazyTransferElectronMessagePortRpc = {
1388
1431
  __proto__: null,
1389
- create: create$k
1432
+ create: create$j
1390
1433
  };
1391
1434
  const create$9 = async ({
1392
1435
  commandMap
@@ -1441,8 +1484,13 @@ const NodeWorkerRpcClient = {
1441
1484
  };
1442
1485
 
1443
1486
  const {
1444
- dispose,
1445
1487
  invoke: invoke$2,
1488
+ set: set$1
1489
+ } = create$3(MainProcess);
1490
+
1491
+ const {
1492
+ dispose,
1493
+ invoke: invoke$1,
1446
1494
  invokeAndTransfer: invokeAndTransfer$1,
1447
1495
  set
1448
1496
  } = create$3(SharedProcess$1);
@@ -1450,52 +1498,16 @@ const {
1450
1498
  const SharedProcess = {
1451
1499
  __proto__: null,
1452
1500
  dispose,
1453
- invoke: invoke$2,
1501
+ invoke: invoke$1,
1454
1502
  invokeAndTransfer: invokeAndTransfer$1,
1455
1503
  set
1456
1504
  };
1457
1505
 
1458
- const createLazyRpc = rpcId => {
1459
- let rpcPromise;
1460
- let factory;
1461
- const createRpc = async () => {
1462
- const rpc = await factory();
1463
- set$1(rpcId, rpc);
1464
- };
1465
- const ensureRpc = async () => {
1466
- if (!rpcPromise) {
1467
- rpcPromise = createRpc();
1468
- }
1469
- await rpcPromise;
1470
- };
1471
- return {
1472
- async invoke(method, ...params) {
1473
- await ensureRpc();
1474
- const rpc = get$1(rpcId);
1475
- return rpc.invoke(method, ...params);
1476
- },
1477
- async invokeAndTransfer(method, ...params) {
1478
- await ensureRpc();
1479
- const rpc = get$1(rpcId);
1480
- return rpc.invokeAndTransfer(method, ...params);
1481
- },
1482
- setFactory(value) {
1483
- factory = value;
1484
- }
1485
- };
1486
- };
1487
-
1488
- const {
1489
- invoke: invoke$1,
1490
- setFactory
1491
- } = createLazyRpc(MainProcess);
1492
-
1493
1506
  const trash$2 = async path => {
1494
1507
  if (!existsSync(path)) {
1495
1508
  return;
1496
1509
  }
1497
- // @ts-ignore
1498
- await invoke$1('Trash.trash', path);
1510
+ await invoke$2('Trash.trash', path);
1499
1511
  };
1500
1512
 
1501
1513
  // @ts-ignore
@@ -1816,7 +1828,7 @@ const handleElectronMessagePort = async (messagePort, rpcId) => {
1816
1828
  method: ElectronMessagePort
1817
1829
  });
1818
1830
  if (rpcId) {
1819
- set$1(rpcId, rpc);
1831
+ set$2(rpcId, rpc);
1820
1832
  }
1821
1833
  };
1822
1834
 
@@ -1881,24 +1893,20 @@ const getPortTuple = async () => {
1881
1893
  };
1882
1894
 
1883
1895
  const createMainProcessRpc = async () => {
1884
- try {
1885
- const rpc = TransferElectronMessagePortRpc.create({
1886
- commandMap: {},
1887
- getPortTuple,
1888
- async send(port) {
1889
- await invokeAndTransfer(
1890
- // @ts-ignore
1891
- 'TemporaryMessagePort.sendToElectron', port, MainProcess, FileSystemProcess);
1892
- }
1893
- });
1894
- return rpc;
1895
- } catch (error) {
1896
- throw new VError(error, `Failed to create main process rpc`);
1897
- }
1896
+ const rpc = await LazyTransferElectronMessagePortRpc.create({
1897
+ commandMap: {},
1898
+ getPortTuple,
1899
+ async send(port) {
1900
+ await invokeAndTransfer(
1901
+ // @ts-ignore
1902
+ 'TemporaryMessagePort.sendToElectron', port, MainProcess, FileSystemProcess);
1903
+ }
1904
+ });
1905
+ set$1(rpc);
1898
1906
  };
1899
1907
 
1900
1908
  const initialize = async () => {
1901
- setFactory(createMainProcessRpc);
1909
+ await createMainProcessRpc();
1902
1910
  };
1903
1911
 
1904
1912
  const commandMap = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/file-system-process",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "File System Process",
5
5
  "keywords": [
6
6
  "Lvce Editor",