@lvce-editor/file-system-process 2.4.0 → 3.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.
- package/dist/index.js +156 -26
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -48,6 +48,12 @@ const object = value => {
|
|
|
48
48
|
throw new AssertionError('expected value to be of type object');
|
|
49
49
|
}
|
|
50
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
|
+
};
|
|
51
57
|
const string = value => {
|
|
52
58
|
const type = getType(value);
|
|
53
59
|
if (type !== String) {
|
|
@@ -138,7 +144,6 @@ const Socket = 8;
|
|
|
138
144
|
const Symlink = 9;
|
|
139
145
|
const Unknown = 12;
|
|
140
146
|
|
|
141
|
-
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
142
147
|
const getDirentType = dirent => {
|
|
143
148
|
if (dirent.isFile()) {
|
|
144
149
|
return File;
|
|
@@ -215,7 +220,7 @@ const get$1 = id => {
|
|
|
215
220
|
|
|
216
221
|
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
217
222
|
|
|
218
|
-
const create$
|
|
223
|
+
const create$8 = rpcId => {
|
|
219
224
|
return {
|
|
220
225
|
// @ts-ignore
|
|
221
226
|
invoke(method, ...params) {
|
|
@@ -238,27 +243,96 @@ const create$5 = rpcId => {
|
|
|
238
243
|
}
|
|
239
244
|
};
|
|
240
245
|
};
|
|
246
|
+
const DebugWorker$1 = 55;
|
|
247
|
+
const EditorWorker$1 = 99;
|
|
248
|
+
const ExtensionHostWorker = 44;
|
|
241
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
|
+
};
|
|
242
293
|
const {
|
|
243
|
-
invoke: invoke$
|
|
244
|
-
|
|
245
|
-
const
|
|
294
|
+
invoke: invoke$1$1,
|
|
295
|
+
invokeAndTransfer: invokeAndTransfer$1$1} = create$8(SharedProcess$1);
|
|
296
|
+
const SharedProcess = {
|
|
246
297
|
__proto__: null,
|
|
247
|
-
invoke: invoke$
|
|
248
|
-
|
|
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
|
+
};
|
|
249
323
|
};
|
|
250
324
|
|
|
251
325
|
const {
|
|
252
|
-
invoke: invoke$
|
|
253
|
-
|
|
254
|
-
} = MainProcess;
|
|
326
|
+
invoke: invoke$2,
|
|
327
|
+
setFactory
|
|
328
|
+
} = createLazyRpc(RpcId.MainProcess);
|
|
255
329
|
|
|
256
330
|
const trash$2 = async path => {
|
|
257
331
|
if (!existsSync(path)) {
|
|
258
332
|
return;
|
|
259
333
|
}
|
|
260
334
|
// @ts-ignore
|
|
261
|
-
await invoke$
|
|
335
|
+
await invoke$2('Trash.trash', path);
|
|
262
336
|
};
|
|
263
337
|
|
|
264
338
|
// @ts-ignore
|
|
@@ -1346,7 +1420,7 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
|
|
|
1346
1420
|
const errorProperty = getErrorProperty(error, prettyError);
|
|
1347
1421
|
return create$1(id, errorProperty);
|
|
1348
1422
|
};
|
|
1349
|
-
const create = (message, result) => {
|
|
1423
|
+
const create$5 = (message, result) => {
|
|
1350
1424
|
return {
|
|
1351
1425
|
jsonrpc: Two,
|
|
1352
1426
|
id: message.id,
|
|
@@ -1355,7 +1429,7 @@ const create = (message, result) => {
|
|
|
1355
1429
|
};
|
|
1356
1430
|
const getSuccessResponse = (message, result) => {
|
|
1357
1431
|
const resultProperty = result ?? null;
|
|
1358
|
-
return create(message, resultProperty);
|
|
1432
|
+
return create$5(message, resultProperty);
|
|
1359
1433
|
};
|
|
1360
1434
|
const getErrorResponseSimple = (id, error) => {
|
|
1361
1435
|
return {
|
|
@@ -1463,10 +1537,10 @@ const send = (transport, method, ...params) => {
|
|
|
1463
1537
|
const message = create$4(method, params);
|
|
1464
1538
|
transport.send(message);
|
|
1465
1539
|
};
|
|
1466
|
-
const invoke = (ipc, method, ...params) => {
|
|
1540
|
+
const invoke$1 = (ipc, method, ...params) => {
|
|
1467
1541
|
return invokeHelper(ipc, method, params, false);
|
|
1468
1542
|
};
|
|
1469
|
-
const invokeAndTransfer = (ipc, method, ...params) => {
|
|
1543
|
+
const invokeAndTransfer$1 = (ipc, method, ...params) => {
|
|
1470
1544
|
return invokeHelper(ipc, method, params, true);
|
|
1471
1545
|
};
|
|
1472
1546
|
|
|
@@ -1496,10 +1570,10 @@ const createRpc = ipc => {
|
|
|
1496
1570
|
send(ipc, method, ...params);
|
|
1497
1571
|
},
|
|
1498
1572
|
invoke(method, ...params) {
|
|
1499
|
-
return invoke(ipc, method, ...params);
|
|
1573
|
+
return invoke$1(ipc, method, ...params);
|
|
1500
1574
|
},
|
|
1501
1575
|
invokeAndTransfer(method, ...params) {
|
|
1502
|
-
return invokeAndTransfer(ipc, method, ...params);
|
|
1576
|
+
return invokeAndTransfer$1(ipc, method, ...params);
|
|
1503
1577
|
},
|
|
1504
1578
|
async dispose() {
|
|
1505
1579
|
await ipc?.dispose();
|
|
@@ -1668,12 +1742,15 @@ const listen$1 = async ({
|
|
|
1668
1742
|
return rpc;
|
|
1669
1743
|
};
|
|
1670
1744
|
|
|
1671
|
-
const handleElectronMessagePort = async (messagePort,
|
|
1745
|
+
const handleElectronMessagePort = async (messagePort, rpcId) => {
|
|
1672
1746
|
object(messagePort);
|
|
1673
|
-
await listen$1({
|
|
1747
|
+
const rpc = await listen$1({
|
|
1674
1748
|
method: ElectronMessagePort,
|
|
1675
1749
|
messagePort
|
|
1676
1750
|
});
|
|
1751
|
+
if (rpcId) {
|
|
1752
|
+
set$g(rpcId, rpc);
|
|
1753
|
+
}
|
|
1677
1754
|
};
|
|
1678
1755
|
|
|
1679
1756
|
const handleWebSocket = async (handle, request) => {
|
|
@@ -1686,11 +1763,65 @@ const handleWebSocket = async (handle, request) => {
|
|
|
1686
1763
|
});
|
|
1687
1764
|
};
|
|
1688
1765
|
|
|
1689
|
-
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 () => {
|
|
1690
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);
|
|
1691
1822
|
const rpc = await ElectronMessagePortRpcClient.create({
|
|
1692
1823
|
commandMap: {},
|
|
1693
|
-
messagePort:
|
|
1824
|
+
messagePort: port2
|
|
1694
1825
|
});
|
|
1695
1826
|
return rpc;
|
|
1696
1827
|
} catch (error) {
|
|
@@ -1698,10 +1829,8 @@ const createMainProcessRpc = async port => {
|
|
|
1698
1829
|
}
|
|
1699
1830
|
};
|
|
1700
1831
|
|
|
1701
|
-
const initialize = async
|
|
1702
|
-
|
|
1703
|
-
const rpc = await createMainProcessRpc(port);
|
|
1704
|
-
set$1(rpc);
|
|
1832
|
+
const initialize = async () => {
|
|
1833
|
+
setFactory(createMainProcessRpc);
|
|
1705
1834
|
};
|
|
1706
1835
|
|
|
1707
1836
|
const commandMap = {
|
|
@@ -1719,7 +1848,8 @@ const commandMap = {
|
|
|
1719
1848
|
'FileSystem.writeFile': writeFile,
|
|
1720
1849
|
'HandleElectronMessagePort.handleElectronMessagePort': handleElectronMessagePort,
|
|
1721
1850
|
'HandleWebSocket.handleWebSocket': handleWebSocket,
|
|
1722
|
-
'Initialize.initialize': initialize
|
|
1851
|
+
'Initialize.initialize': initialize,
|
|
1852
|
+
'TemporaryMessagePort.handlePorts': handlePorts
|
|
1723
1853
|
};
|
|
1724
1854
|
|
|
1725
1855
|
const listen = async argv => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/file-system-process",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "File System Process",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Lvce Editor",
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"file-system-process": "bin/fileSystemProcess.js"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"trash": "^9.0.0"
|
|
21
|
+
"trash": "^9.0.0",
|
|
22
|
+
"ws": "^8.18.3"
|
|
22
23
|
},
|
|
23
24
|
"engines": {
|
|
24
25
|
"node": ">=22"
|