@lvce-editor/file-system-process 2.3.0 → 3.0.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.
- package/dist/index.js +188 -50
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -12,37 +12,51 @@ class AssertionError extends Error {
|
|
|
12
12
|
this.name = 'AssertionError';
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
+
const Object$1 = 1;
|
|
16
|
+
const Number = 2;
|
|
17
|
+
const Array$1 = 3;
|
|
18
|
+
const String = 4;
|
|
19
|
+
const Boolean$1 = 5;
|
|
20
|
+
const Function = 6;
|
|
21
|
+
const Null = 7;
|
|
22
|
+
const Unknown$1 = 8;
|
|
15
23
|
const getType = value => {
|
|
16
24
|
switch (typeof value) {
|
|
17
25
|
case 'number':
|
|
18
|
-
return
|
|
26
|
+
return Number;
|
|
19
27
|
case 'function':
|
|
20
|
-
return
|
|
28
|
+
return Function;
|
|
21
29
|
case 'string':
|
|
22
|
-
return
|
|
30
|
+
return String;
|
|
23
31
|
case 'object':
|
|
24
32
|
if (value === null) {
|
|
25
|
-
return
|
|
33
|
+
return Null;
|
|
26
34
|
}
|
|
27
35
|
if (Array.isArray(value)) {
|
|
28
|
-
return
|
|
36
|
+
return Array$1;
|
|
29
37
|
}
|
|
30
|
-
return
|
|
38
|
+
return Object$1;
|
|
31
39
|
case 'boolean':
|
|
32
|
-
return
|
|
40
|
+
return Boolean$1;
|
|
33
41
|
default:
|
|
34
|
-
return
|
|
42
|
+
return Unknown$1;
|
|
35
43
|
}
|
|
36
44
|
};
|
|
37
45
|
const object = value => {
|
|
38
46
|
const type = getType(value);
|
|
39
|
-
if (type !==
|
|
47
|
+
if (type !== Object$1) {
|
|
40
48
|
throw new AssertionError('expected value to be of type object');
|
|
41
49
|
}
|
|
42
50
|
};
|
|
51
|
+
const number = value => {
|
|
52
|
+
const type = getType(value);
|
|
53
|
+
if (type !== Number) {
|
|
54
|
+
throw new AssertionError('expected value to be of type number');
|
|
55
|
+
}
|
|
56
|
+
};
|
|
43
57
|
const string = value => {
|
|
44
58
|
const type = getType(value);
|
|
45
|
-
if (type !==
|
|
59
|
+
if (type !== String) {
|
|
46
60
|
throw new AssertionError('expected value to be of type string');
|
|
47
61
|
}
|
|
48
62
|
};
|
|
@@ -130,7 +144,6 @@ const Socket = 8;
|
|
|
130
144
|
const Symlink = 9;
|
|
131
145
|
const Unknown = 12;
|
|
132
146
|
|
|
133
|
-
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
134
147
|
const getDirentType = dirent => {
|
|
135
148
|
if (dirent.isFile()) {
|
|
136
149
|
return File;
|
|
@@ -198,7 +211,7 @@ const isEnoentError = error => {
|
|
|
198
211
|
};
|
|
199
212
|
|
|
200
213
|
const rpcs = Object.create(null);
|
|
201
|
-
const set$
|
|
214
|
+
const set$g = (id, rpc) => {
|
|
202
215
|
rpcs[id] = rpc;
|
|
203
216
|
};
|
|
204
217
|
const get$1 = id => {
|
|
@@ -207,7 +220,7 @@ const get$1 = id => {
|
|
|
207
220
|
|
|
208
221
|
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
209
222
|
|
|
210
|
-
const create$
|
|
223
|
+
const create$8 = rpcId => {
|
|
211
224
|
return {
|
|
212
225
|
// @ts-ignore
|
|
213
226
|
invoke(method, ...params) {
|
|
@@ -222,7 +235,7 @@ const create$6 = rpcId => {
|
|
|
222
235
|
return rpc.invokeAndTransfer(method, ...params);
|
|
223
236
|
},
|
|
224
237
|
set(rpc) {
|
|
225
|
-
set$
|
|
238
|
+
set$g(rpcId, rpc);
|
|
226
239
|
},
|
|
227
240
|
async dispose() {
|
|
228
241
|
const rpc = get$1(rpcId);
|
|
@@ -230,27 +243,96 @@ const create$6 = rpcId => {
|
|
|
230
243
|
}
|
|
231
244
|
};
|
|
232
245
|
};
|
|
246
|
+
const DebugWorker$1 = 55;
|
|
247
|
+
const EditorWorker$1 = 99;
|
|
248
|
+
const ExtensionHostWorker = 44;
|
|
233
249
|
const MainProcess$1 = -5;
|
|
250
|
+
const RendererWorker$1 = 1;
|
|
251
|
+
const RendererProcess$1 = 1670;
|
|
252
|
+
const SearchProcess$1 = 77;
|
|
253
|
+
const SearchProcessElectron = 2;
|
|
254
|
+
const SharedProcess$1 = 1;
|
|
255
|
+
const SourceControlWorker = 66;
|
|
256
|
+
const EmbedsProcess$1 = 207;
|
|
257
|
+
const EmbedsWorker = 208;
|
|
258
|
+
const FileSystemWorker$1 = 209;
|
|
259
|
+
const FileSystemProcess$1 = 210;
|
|
260
|
+
const MarkdownWorker$1 = 300;
|
|
261
|
+
const CompletionWorker = 301;
|
|
262
|
+
const ColorPickerWorker = 302;
|
|
263
|
+
const SourceActionWorker = 303;
|
|
264
|
+
const ErrorWorker$1 = 3308;
|
|
265
|
+
const SyntaxHighlightingWorker$1 = 3309;
|
|
266
|
+
const ClipBoardWorker$1 = 3400;
|
|
267
|
+
const ClipBoardProcess$1 = 3401;
|
|
268
|
+
const RpcId = {
|
|
269
|
+
__proto__: null,
|
|
270
|
+
ClipBoardProcess: ClipBoardProcess$1,
|
|
271
|
+
ClipBoardWorker: ClipBoardWorker$1,
|
|
272
|
+
ColorPickerWorker,
|
|
273
|
+
CompletionWorker,
|
|
274
|
+
DebugWorker: DebugWorker$1,
|
|
275
|
+
EditorWorker: EditorWorker$1,
|
|
276
|
+
EmbedsProcess: EmbedsProcess$1,
|
|
277
|
+
EmbedsWorker,
|
|
278
|
+
ErrorWorker: ErrorWorker$1,
|
|
279
|
+
ExtensionHostWorker,
|
|
280
|
+
FileSystemProcess: FileSystemProcess$1,
|
|
281
|
+
FileSystemWorker: FileSystemWorker$1,
|
|
282
|
+
MainProcess: MainProcess$1,
|
|
283
|
+
MarkdownWorker: MarkdownWorker$1,
|
|
284
|
+
RendererProcess: RendererProcess$1,
|
|
285
|
+
RendererWorker: RendererWorker$1,
|
|
286
|
+
SearchProcess: SearchProcess$1,
|
|
287
|
+
SearchProcessElectron,
|
|
288
|
+
SharedProcess: SharedProcess$1,
|
|
289
|
+
SourceActionWorker,
|
|
290
|
+
SourceControlWorker,
|
|
291
|
+
SyntaxHighlightingWorker: SyntaxHighlightingWorker$1
|
|
292
|
+
};
|
|
234
293
|
const {
|
|
235
|
-
invoke: invoke$
|
|
236
|
-
|
|
237
|
-
const
|
|
294
|
+
invoke: invoke$1$1,
|
|
295
|
+
invokeAndTransfer: invokeAndTransfer$1$1} = create$8(SharedProcess$1);
|
|
296
|
+
const SharedProcess = {
|
|
238
297
|
__proto__: null,
|
|
239
|
-
invoke: invoke$
|
|
240
|
-
|
|
298
|
+
invoke: invoke$1$1,
|
|
299
|
+
invokeAndTransfer: invokeAndTransfer$1$1};
|
|
300
|
+
const createLazyRpc = rpcId => {
|
|
301
|
+
let rpcPromise;
|
|
302
|
+
let factory;
|
|
303
|
+
const createRpc = async () => {
|
|
304
|
+
const rpc = await factory();
|
|
305
|
+
set$g(rpcId, rpc);
|
|
306
|
+
};
|
|
307
|
+
const ensureRpc = async () => {
|
|
308
|
+
if (!rpcPromise) {
|
|
309
|
+
rpcPromise = createRpc();
|
|
310
|
+
}
|
|
311
|
+
await rpcPromise;
|
|
312
|
+
};
|
|
313
|
+
return {
|
|
314
|
+
setFactory(value) {
|
|
315
|
+
factory = value;
|
|
316
|
+
},
|
|
317
|
+
async invoke(method, ...params) {
|
|
318
|
+
await ensureRpc();
|
|
319
|
+
const rpc = get$1(rpcId);
|
|
320
|
+
return rpc.invoke(method, ...params);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
241
323
|
};
|
|
242
324
|
|
|
243
325
|
const {
|
|
244
|
-
invoke: invoke$
|
|
245
|
-
|
|
246
|
-
} = MainProcess;
|
|
326
|
+
invoke: invoke$2,
|
|
327
|
+
setFactory
|
|
328
|
+
} = createLazyRpc(RpcId.MainProcess);
|
|
247
329
|
|
|
248
330
|
const trash$2 = async path => {
|
|
249
331
|
if (!existsSync(path)) {
|
|
250
332
|
return;
|
|
251
333
|
}
|
|
252
334
|
// @ts-ignore
|
|
253
|
-
await invoke$
|
|
335
|
+
await invoke$2('Trash.trash', path);
|
|
254
336
|
};
|
|
255
337
|
|
|
256
338
|
// @ts-ignore
|
|
@@ -1084,7 +1166,7 @@ const IpcChildWithWebSocket = {
|
|
|
1084
1166
|
};
|
|
1085
1167
|
|
|
1086
1168
|
const Two = '2.0';
|
|
1087
|
-
const create$4
|
|
1169
|
+
const create$4 = (method, params) => {
|
|
1088
1170
|
return {
|
|
1089
1171
|
jsonrpc: Two,
|
|
1090
1172
|
method,
|
|
@@ -1338,7 +1420,7 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
|
|
|
1338
1420
|
const errorProperty = getErrorProperty(error, prettyError);
|
|
1339
1421
|
return create$1(id, errorProperty);
|
|
1340
1422
|
};
|
|
1341
|
-
const create = (message, result) => {
|
|
1423
|
+
const create$5 = (message, result) => {
|
|
1342
1424
|
return {
|
|
1343
1425
|
jsonrpc: Two,
|
|
1344
1426
|
id: message.id,
|
|
@@ -1347,7 +1429,7 @@ const create = (message, result) => {
|
|
|
1347
1429
|
};
|
|
1348
1430
|
const getSuccessResponse = (message, result) => {
|
|
1349
1431
|
const resultProperty = result ?? null;
|
|
1350
|
-
return create(message, resultProperty);
|
|
1432
|
+
return create$5(message, resultProperty);
|
|
1351
1433
|
};
|
|
1352
1434
|
const getErrorResponseSimple = (id, error) => {
|
|
1353
1435
|
return {
|
|
@@ -1452,13 +1534,13 @@ const invokeHelper = async (ipc, method, params, useSendAndTransfer) => {
|
|
|
1452
1534
|
return unwrapJsonRpcResult(responseMessage);
|
|
1453
1535
|
};
|
|
1454
1536
|
const send = (transport, method, ...params) => {
|
|
1455
|
-
const message = create$4
|
|
1537
|
+
const message = create$4(method, params);
|
|
1456
1538
|
transport.send(message);
|
|
1457
1539
|
};
|
|
1458
|
-
const invoke = (ipc, method, ...params) => {
|
|
1540
|
+
const invoke$1 = (ipc, method, ...params) => {
|
|
1459
1541
|
return invokeHelper(ipc, method, params, false);
|
|
1460
1542
|
};
|
|
1461
|
-
const invokeAndTransfer = (ipc, method, ...params) => {
|
|
1543
|
+
const invokeAndTransfer$1 = (ipc, method, ...params) => {
|
|
1462
1544
|
return invokeHelper(ipc, method, params, true);
|
|
1463
1545
|
};
|
|
1464
1546
|
|
|
@@ -1488,10 +1570,10 @@ const createRpc = ipc => {
|
|
|
1488
1570
|
send(ipc, method, ...params);
|
|
1489
1571
|
},
|
|
1490
1572
|
invoke(method, ...params) {
|
|
1491
|
-
return invoke(ipc, method, ...params);
|
|
1573
|
+
return invoke$1(ipc, method, ...params);
|
|
1492
1574
|
},
|
|
1493
1575
|
invokeAndTransfer(method, ...params) {
|
|
1494
|
-
return invokeAndTransfer(ipc, method, ...params);
|
|
1576
|
+
return invokeAndTransfer$1(ipc, method, ...params);
|
|
1495
1577
|
},
|
|
1496
1578
|
async dispose() {
|
|
1497
1579
|
await ipc?.dispose();
|
|
@@ -1529,7 +1611,7 @@ const listen$2 = async (module, options) => {
|
|
|
1529
1611
|
const ipc = module.wrap(rawIpc);
|
|
1530
1612
|
return ipc;
|
|
1531
1613
|
};
|
|
1532
|
-
const create$
|
|
1614
|
+
const create$g = async ({
|
|
1533
1615
|
commandMap,
|
|
1534
1616
|
messagePort,
|
|
1535
1617
|
requiresSocket
|
|
@@ -1548,9 +1630,9 @@ const create$e = async ({
|
|
|
1548
1630
|
};
|
|
1549
1631
|
const ElectronMessagePortRpcClient = {
|
|
1550
1632
|
__proto__: null,
|
|
1551
|
-
create: create$
|
|
1633
|
+
create: create$g
|
|
1552
1634
|
};
|
|
1553
|
-
const create$
|
|
1635
|
+
const create$f = async ({
|
|
1554
1636
|
commandMap
|
|
1555
1637
|
}) => {
|
|
1556
1638
|
// TODO create a commandMap per rpc instance
|
|
@@ -1562,9 +1644,9 @@ const create$d = async ({
|
|
|
1562
1644
|
};
|
|
1563
1645
|
const ElectronUtilityProcessRpcClient = {
|
|
1564
1646
|
__proto__: null,
|
|
1565
|
-
create: create$
|
|
1647
|
+
create: create$f
|
|
1566
1648
|
};
|
|
1567
|
-
const create$
|
|
1649
|
+
const create$9 = async ({
|
|
1568
1650
|
commandMap
|
|
1569
1651
|
}) => {
|
|
1570
1652
|
// TODO create a commandMap per rpc instance
|
|
@@ -1576,9 +1658,9 @@ const create$7 = async ({
|
|
|
1576
1658
|
};
|
|
1577
1659
|
const NodeForkedProcessRpcClient = {
|
|
1578
1660
|
__proto__: null,
|
|
1579
|
-
create: create$
|
|
1661
|
+
create: create$9
|
|
1580
1662
|
};
|
|
1581
|
-
const create$
|
|
1663
|
+
const create$7 = async ({
|
|
1582
1664
|
commandMap,
|
|
1583
1665
|
request,
|
|
1584
1666
|
handle,
|
|
@@ -1599,9 +1681,9 @@ const create$5 = async ({
|
|
|
1599
1681
|
};
|
|
1600
1682
|
const NodeWebSocketRpcClient = {
|
|
1601
1683
|
__proto__: null,
|
|
1602
|
-
create: create$
|
|
1684
|
+
create: create$7
|
|
1603
1685
|
};
|
|
1604
|
-
const create$
|
|
1686
|
+
const create$6 = async ({
|
|
1605
1687
|
commandMap
|
|
1606
1688
|
}) => {
|
|
1607
1689
|
// TODO create a commandMap per rpc instance
|
|
@@ -1613,7 +1695,7 @@ const create$4 = async ({
|
|
|
1613
1695
|
};
|
|
1614
1696
|
const NodeWorkerRpcClient = {
|
|
1615
1697
|
__proto__: null,
|
|
1616
|
-
create: create$
|
|
1698
|
+
create: create$6
|
|
1617
1699
|
};
|
|
1618
1700
|
|
|
1619
1701
|
const NodeWorker = 1;
|
|
@@ -1660,12 +1742,15 @@ const listen$1 = async ({
|
|
|
1660
1742
|
return rpc;
|
|
1661
1743
|
};
|
|
1662
1744
|
|
|
1663
|
-
const handleElectronMessagePort = async (messagePort,
|
|
1745
|
+
const handleElectronMessagePort = async (messagePort, rpcId) => {
|
|
1664
1746
|
object(messagePort);
|
|
1665
|
-
await listen$1({
|
|
1747
|
+
const rpc = await listen$1({
|
|
1666
1748
|
method: ElectronMessagePort,
|
|
1667
1749
|
messagePort
|
|
1668
1750
|
});
|
|
1751
|
+
if (rpcId) {
|
|
1752
|
+
set$g(rpcId, rpc);
|
|
1753
|
+
}
|
|
1669
1754
|
};
|
|
1670
1755
|
|
|
1671
1756
|
const handleWebSocket = async (handle, request) => {
|
|
@@ -1678,11 +1763,65 @@ const handleWebSocket = async (handle, request) => {
|
|
|
1678
1763
|
});
|
|
1679
1764
|
};
|
|
1680
1765
|
|
|
1681
|
-
const
|
|
1766
|
+
const state = {
|
|
1767
|
+
id: 0
|
|
1768
|
+
};
|
|
1769
|
+
const create = () => {
|
|
1770
|
+
return ++state.id;
|
|
1771
|
+
};
|
|
1772
|
+
|
|
1773
|
+
const {
|
|
1774
|
+
invoke,
|
|
1775
|
+
invokeAndTransfer
|
|
1776
|
+
} = SharedProcess;
|
|
1777
|
+
|
|
1778
|
+
const ports = Object.create(null);
|
|
1779
|
+
const getPortTuple$1 = async () => {
|
|
1780
|
+
const id1 = create();
|
|
1781
|
+
const id2 = create();
|
|
1782
|
+
// @ts-ignore
|
|
1783
|
+
await invoke('TemporaryMessagePort.getPortTuple3', id1, id2, RpcId.FileSystemProcess);
|
|
1784
|
+
const port1 = ports[id1];
|
|
1785
|
+
const port2 = ports[id2];
|
|
1786
|
+
delete ports[id1];
|
|
1787
|
+
delete ports[id2];
|
|
1788
|
+
return {
|
|
1789
|
+
port1,
|
|
1790
|
+
port2
|
|
1791
|
+
};
|
|
1792
|
+
};
|
|
1793
|
+
const handlePorts = (port1, port2, id1, id2) => {
|
|
1794
|
+
number(id1);
|
|
1795
|
+
number(id2);
|
|
1796
|
+
object(port1);
|
|
1797
|
+
object(port2);
|
|
1798
|
+
ports[id1] = port1;
|
|
1799
|
+
ports[id2] = port2;
|
|
1800
|
+
};
|
|
1801
|
+
|
|
1802
|
+
const getPortTuple = async () => {
|
|
1803
|
+
const {
|
|
1804
|
+
port1,
|
|
1805
|
+
port2
|
|
1806
|
+
} = await getPortTuple$1();
|
|
1807
|
+
return {
|
|
1808
|
+
port1,
|
|
1809
|
+
port2
|
|
1810
|
+
};
|
|
1811
|
+
};
|
|
1812
|
+
|
|
1813
|
+
const createMainProcessRpc = async () => {
|
|
1682
1814
|
try {
|
|
1815
|
+
const {
|
|
1816
|
+
port1,
|
|
1817
|
+
port2
|
|
1818
|
+
} = await getPortTuple();
|
|
1819
|
+
await invokeAndTransfer(
|
|
1820
|
+
// @ts-ignore
|
|
1821
|
+
'TemporaryMessagePort.sendToElectron', port1, RpcId.MainProcess, RpcId.FileSystemProcess);
|
|
1683
1822
|
const rpc = await ElectronMessagePortRpcClient.create({
|
|
1684
1823
|
commandMap: {},
|
|
1685
|
-
messagePort:
|
|
1824
|
+
messagePort: port2
|
|
1686
1825
|
});
|
|
1687
1826
|
return rpc;
|
|
1688
1827
|
} catch (error) {
|
|
@@ -1690,10 +1829,8 @@ const createMainProcessRpc = async port => {
|
|
|
1690
1829
|
}
|
|
1691
1830
|
};
|
|
1692
1831
|
|
|
1693
|
-
const initialize = async
|
|
1694
|
-
|
|
1695
|
-
const rpc = await createMainProcessRpc(port);
|
|
1696
|
-
set$1(rpc);
|
|
1832
|
+
const initialize = async () => {
|
|
1833
|
+
setFactory(createMainProcessRpc);
|
|
1697
1834
|
};
|
|
1698
1835
|
|
|
1699
1836
|
const commandMap = {
|
|
@@ -1711,7 +1848,8 @@ const commandMap = {
|
|
|
1711
1848
|
'FileSystem.writeFile': writeFile,
|
|
1712
1849
|
'HandleElectronMessagePort.handleElectronMessagePort': handleElectronMessagePort,
|
|
1713
1850
|
'HandleWebSocket.handleWebSocket': handleWebSocket,
|
|
1714
|
-
'Initialize.initialize': initialize
|
|
1851
|
+
'Initialize.initialize': initialize,
|
|
1852
|
+
'TemporaryMessagePort.handlePorts': handlePorts
|
|
1715
1853
|
};
|
|
1716
1854
|
|
|
1717
1855
|
const listen = async argv => {
|